文章
40
粉丝
607
获赞
68
访问
418.3k
#include<iostream>
#include<vector>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
struct people {
string sum;
string id;
};
bool cmp(people a, people b) {
if(a.sum.size()!=b.sum.size()){//比较水贴数量字符串长度,长的排在前
return a.sum.size()>b.sum.size();
}else{//如果水贴数量字符串长度相同
if(a.sum==b.sum){//水贴数量字符串长度相等且数量相等,按id字典序排列
return a.id < b.id;
}else{//水贴数量字符串长度相等但是数量不相等,数值大的排在前面
a.sum > b.sum;
}
}
}
int main() {
int n;
while (cin >> n) {
vector<people> v;
for (int i = 0;i < n;i++) {
people p;
cin >> p.id;
cin >> p.sum;
v.push_back(p);
}
sort(v.begin(), v.end(), cmp);//按规则排序
for (int j = 0;j < v.size();j++) {//输出id
cout << v[j].id << endl;
}
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发