-
Notifications
You must be signed in to change notification settings - Fork 0
/
1028.cpp
47 lines (47 loc) · 1.07 KB
/
1028.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
const int maxn=1e5+10;
struct ty{
string id;
string name;
int grades;
}stu[maxn];
bool cmp1(ty a,ty b){
return a.id<b.id;
}
bool cmp2(ty a,ty b){
if(a.name==b.name) return a.id<b.id;
return a.name<b.name;
}
bool cmp3(ty a,ty b){
if(a.grades==b.grades) return a.id<b.id;
return a.grades<b.grades;
}
int n,c;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>c;
for(int i=1;i<=n;i++){
cin>>stu[i].id>>stu[i].name>>stu[i].grades;
}
if(c==2){
sort(stu+1,stu+1+n,cmp2);
for(int i=1;i<=n;i++){
cout<<stu[i].id<< ' '<<stu[i].name<<' '<<stu[i].grades<<'\n';
}
}else if(c==3){
sort(stu+1,stu+1+n,cmp3);
for(int i=1;i<=n;i++){
cout<<stu[i].id<< ' '<<stu[i].name<<' '<<stu[i].grades<<'\n';
}
}else{
sort(stu+1,stu+1+n,cmp1);
for(int i=1;i<=n;i++){
cout<<stu[i].id<< ' '<<stu[i].name<<' '<<stu[i].grades<<'\n';
}
}
return 0;
}