您的位置:首页 > 其它

浙大PAT甲级 1028

2016-08-20 13:34 344 查看
结构体排序,如果用cin,cout会超时,应用scanf,printf能够通过。

#include<iostream>
#include<vector>
#include<map>
#include<cstdio>
#include<algorithm>
using namespace std;
struct stu
{
int id;
string name;
int fen;
};
stu a[100005];
int c;
bool cmp(stu x,stu y)
{
if(c==1)
return x.id<y.id;
else if(c==2)
{
if(x.name!=y.name)
return x.name<y.name;
else
{
return x.id<y.id;
}
}
else if(c==3)
{
if(x.fen!=y.fen)
return x.fen<y.fen;
else
return x.id<y.id;
}
}
int main()
{
int n;
scanf("%d %d",&n,&c);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i].id);
cin>>a[i].name;
scanf("%d",&a[i].fen);
}
sort(a,a+n,cmp);
for(int i=0;i<n;i++)
{
printf("%06d ",a[i].id);
cout<<a[i].name<<" ";
printf("%d\n",a[i].fen);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: