求解释

P1104 生日

Problem1613end @ 2024-08-01 20:35:06

为何第十二行大于改小于才过?


#include<bits/stdc++.h>
using namespace std;
int n;
struct loct{
    string s;
    int y,d,m,xh;
}a[1010];
bool cmp(loct at,loct bt){
    if(at.y>bt.y)  return 0;
    else  if(at.y==bt.y && at.m>bt.m)  return 0;
    else  if(at.y==bt.y && at.m==bt.m && at.d>bt.d)  return 0;
    else  if(at.y==bt.y && at.m==bt.m && at.d==bt.d && at.xh>bt.xh)  return 0;//第十二行
    else  return 1;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i].s>>a[i].y>>a[i].m>>a[i].d;
        a[i].xh=i;
    }
    stable_sort(a+1,a+n+1,cmp);
    for(int i=1;i<=n;i++){
        cout<<a[i].s<<endl;
    }
    return 0;
}
// 32 312 302

by WEICY123 @ 2024-08-01 20:38:39

@Problem1613end 如果有两个同学生日相同,输入靠后的同学先输出


by Problem1613end @ 2024-08-01 20:40:31

@WEICY123 谢谢


|