rt
用的sort 80
#include<bits/stdc++.h>
using namespace std;
struct Node{
char s[25];
int y,m,d,id;
};
Node a[105];
bool cmp(Node x,Node y){
if(x.y!=y.y)
return x.y<y.y;
if(x.m!=y.m)
return x.m<y.m;
if(x.d!=y.d)
return x.d<y.d;
return x.s>y.s;
}
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%s%d%d%d",&a[i].s,&a[i].y,&a[i].m,&a[i].d);
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;++i){
printf("%s\n",a[i].s);
}
return 0;
}
用的冒泡 64
#include<bits/stdc++.h>
using namespace std;
struct Node{
char s[25];
int y,m,d;
}a[105];
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%s%d%d%d",&a[i].s,&a[i].y,&a[i].m,&a[i].d);
}
for(int i=1;i<n;++i){
for(int j=1;j<=n-i;++j){
if(a[j].y>a[j+1].y)
swap(a[j],a[j+1]);
else if(a[j].y==a[j+1].y){
if(a[j].m>a[j+1].m)
swap(a[j],a[j+1]);
else if(a[j].m==a[j+1].m){
if(a[j].d>=a[j+1].d)
swap(a[j],a[j+1]);
}
}
}
}
for(int i=1;i<=n;++i){
printf("%s\n",a[i].s);
}
return 0;
}