ny_kuangbowen @ 2024-06-10 15:57:30
#include<bits/stdc++.h>
using namespace std;
const int N=100;
typedef long long ll;
int n;
struct sd{
string s;
int a,b,c;
};
bool cmp(sd&k,sd&l){
if(k.a==l.a){
if(k.b==l.b){
return k.c<l.c;
}
else{
k.b<l.b;
}
}
else{
return k.a<l.a;
}
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
sd w[n+1];
for(int i=n;i>=1;i--){
cin>>w[i].s>>w[i].a>>w[i].b>>w[i].c;
}
stable_sort(w+1,w+1+n,cmp);
for(int i=1;i<=n;i++){
cout<<w[i].s<<'\n';
}
return 0;
}
by 王逸辰 @ 2024-06-10 16:38:13
@ny_kuangbowen
这是我的正确代码:
#include<bits/stdc++.h>
using namespace std;
struct h{
string na;
int y,m,d,k;
}a[101];
struct o{
string na1;
int k1;
}l[101];
int main(){
int n,p;
cin>>n;
p=n;
for(int i=1;i<=n;i++){
cin>>a[i].na>>a[i].y>>a[i].m>>a[i].d;
a[i].k=a[i].y*1000+a[i].m*32+a[i].d;
l[i].k1=a[i].k;
l[i].na1=a[i].na;
}
for(int i=1;i<=n;i++){
a[p].na=l[i].na1;
a[p].k=l[i].k1;
p--;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n-i;j++)
if(a[j].k>a[j+1].k){
swap(a[j].k,a[j+1].k);
swap(a[j].na,a[j+1].na);
}
for(int i=1;i<=n;i++)
cout<<a[i].na<<endl;
return 0;
}
by ny_wxy @ 2024-06-10 18:32:32
排序里面第一个else里面没有return