1. 题目来源
链接:身高排序(升级版)
2. 题目说明
3. 题目解析
方法一:sort()+结构体+自定义排序+常规解法
题意很明确,依旧采用结构体进行数据存储及排序,真的好方便…还有就是重复性的自定义排序码代码。
参见代码如下:
#include <iostream>
#include <algorithm>
using namespace std;
struct student {
int h, num;
};
bool cmp(student a, student b){
if (a.h == b.h) {
return a.num < b.num;
}
return a.h < b.h;
}
int main() {
int n;
cin >> n;
student stu[100005];
for (int i = 0; i < n; ++i) {
cin >> stu[i].h;
stu[i].num = i + 1;
}
sort(stu, stu + n, cmp);
for (int i = 0; i < n; ++i) {
if (i) {
cout << " ";
}
cout << stu[i].num;
}
return 0;
}