1028 List Sorting (25 分)
思路
三个排序,直接秒杀!!!
代码
#include <bits/stdc++.h>
using namespace std;
struct stu{
char id[10];
char name[12];
int score;
}stud[100005];
bool cmp1(stu a,stu b)
{
if(strcmp(a.id,b.id)) return strcmp(a.id,b.id)<0;
else return strcmp(a.id,b.id)<0;
}
bool cmp2(stu a,stu b)
{
if(strcmp(a.name,b.name)) return strcmp(a.name,b.name)<0;
else return strcmp(a.id,b.id)<0;
}
bool cmp3(stu a,stu b)
{
if(a.score !=b.score) return a.score<b.score;
else return strcmp(a.id,b.id)<0;
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i = 0;i<n;i++)
cin>>stud[i].id>>stud[i].name>>stud[i].score;
if(m==1)
sort(stud,stud+n,cmp1);
if(m==2)
sort(stud,stud+n,cmp2);
if(m==3)
sort(stud,stud+n,cmp3);
for(int i = 0;i<n;i++)
cout<<stud[i].id<<" "<<stud[i].name<<" "<<stud[i].score<<endl;
}