这是我的老代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=110;
struct oier{
ll y,m,d,num;
string name;
};
bool cmp(oier x,oier z){
return x.y<z.y || (x.y==z.y && (x.m<z.m || (x.m==z.m && (x.d<z.d || (x.d==z.d && x.num<z.num)))));
}
oier a[N];
int main(){
ll n;
cin>>n;
ll s;
for(s=1;s<=n;s++){
cin>>a[s].name>>a[s].y>>a[s].m>>a[s].d;
}
sort(a+1,a+n+1,cmp);
for(s=1;s<=n;s++){
cout<<a[s].name<<endl;
}
return 0;
}
这是我自己修改过的:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=110;
struct oier{
ll y,m,d,num;
string name;
};
bool cmp(oier x,oier z){
return x.y<z.y || (x.y==z.y && (x.m<z.m || (x.m==z.m && (x.d<z.d || (x.d==z.d && x.num<z.num)))));
}
oier a[N];
int main(){
ll n;
cin>>n;
ll s;
for(s=1;s<=n;s++){
cin>>a[s].name>>a[s].y>>a[s].m>>a[s].d;
a[s].num=s;//此处
}
sort(a+1,a+n+1,cmp);
for(s=1;s<=n;s++){
cout<<a[s].name<<endl;
}
return 0;
}
然鹅,我发现老代码可以AC#5,修改过的却不行! 求助QwQ,玄关!