A20161. 颁奖典礼
填空题
中等
知识点
题目描述
颁奖典礼
题目描述
n 个学生参加颁奖典礼,学号为 1 到 n。学生根据比赛排名上台领奖。已知学号为 i 的学生是第 ai 个上去领奖的。请输出学生上台领奖的学号顺序。
输入
第一行,单个整数 n。
第二行,n 个整数a1,a2,...,an。
输出
n 个整数,表示学生上台的顺序。
数据范围
对于100%的数据,1≤n≤100,000,1≤ai≤n。
输入样例1
3
3 1 2输出样例1
2 3 1参考答案
#include <bits/stdc++.h>
using namespace std;
bool compare(pair<int,int> a,pair<int,int> b) { //排序比较函数
return a.second < b.second;
}
int main() {
int n, k;
cin >> n;
vector<pair<int,int>> a; //学号和领奖顺序数组
for(int i=0; i<n; i++) {
cin >> k;
a.push_back({i+1, k});
}
sort(a.begin(), a.end(), compare); //按领奖顺序排序
for(int i=0; i<n; i++) {
cout << a[i].first << " "; //输出学号
}
return 0;
}
上一题
下一题