高质量题解|A7868.多关键字排序
2026-02-06 19:29:28
发布于:北京
1阅读
0回复
0点赞
解题思路
结构体内的元素有三个,分别为字符串类型的第一个元素、整数类型的第二个元素和第三个元素
排序规则题目也告诉我们了, 你需要按照第二个属性从大到小进行排序。如果第二个属性相同,则按照第三个属性从小到大进行排序。如果第二和第三个属性都相同,你需要按照第一个属性从大到小进行排序(字典序从大到小)。
代码
#include <bits/stdc++.h>
using namespace std;
struct node{
string first;
int seconed,third;
}a[200001];
bool cmp(node x,node y){
if(x.seconed != y.seconed){
return x.seconed > y.seconed;
}else if(x.third != y.third){
return x.third < y.third;
}else{
return x.first > y.first;
}
}
int main(){
int n;
cin >> n;
for(int i = 1;i <= n;i++){
cin >> a[i].first >> a[i].seconed >> a[i].third;
}
sort(a + 1,a + n + 1,cmp);
for(int i = 1;i <= n;i++){
cout << a[i].first << endl;
}
return 0;
}
这里空空如也








有帮助,赞一个