AcWing 1505. 列表排序
原题链接
简单
作者:
RainSure
,
2022-02-25 11:23:29
,
所有人可见
,
阅读 180
用cin cout会T到烂
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = 100010;
typedef struct node
{
string id, name;
int grade;
}Node;
int n, c;
Node a[maxn];
bool cmp1(Node a, Node b)
{
return a.id < b.id;
}
bool cmp2(Node a, Node b)
{
if(a.name != b.name) return a.name < b.name;
else return a.id < b.id;
}
bool cmp3(Node a, Node b)
{
if(a.grade != b.grade) return a.grade < b.grade;
else return a.id < b.id;
}
int main()
{
scanf("%d%d", &n, &c);
char id[10], name[10];
int grade;
for(int i = 0; i < n; i ++) {
scanf("%s%s%d", id, name, &grade);
a[i] = {id, name, grade};
}
if(c == 1) sort(a, a + n, cmp1);
else if(c == 2) sort(a, a + n, cmp2);
else sort(a, a + n, cmp3);
for(int i = 0; i < n; i ++) printf("%s %s %d\n", a[i].id.c_str(), a[i].name.c_str(), a[i].grade);
return 0;
}