浙大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);
}
}
#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);
}
}
相关文章推荐
- 浙大PAT甲级-1028
- PAT - 甲级 - 1028. List Sorting (25)(排序)
- 浙大PAT甲级 1031
- *浙大PAT甲级 1051
- *浙大PAT甲级 1067
- 浙大PAT甲级 1088
- *浙大PAT甲级 1096
- *浙大甲级PAT 1109
- PAT甲级 1028
- 浙大Pat | 浙大pat 牛客网甲级 1004 Acute Stroke (30) BFS
- PAT 甲级 1028. List Sorting (25) 【结构体排序】
- 1028. List Sorting (25)-PAT甲级真题
- 浙大PAT甲级 1032
- 浙大PAT甲级 1052
- ** 浙大PAT甲级 1068 01背包问题
- 浙大PAT甲级 1080
- **浙大PAT甲级 1098堆排序
- 浙大PAT甲级-1009
- 浙大PAT甲级-1031
- 浙大pat | 浙大pat 牛客网甲级 1098. Insertion or Heap Sort (25)判断是哪种排序方式