警示后人

P1104 生日

@[zhangshuomeimou](/user/549383) 你在警示什么。
by Flanksy @ 2023-03-03 13:21:37


警示后人:else return x.num>y.num;不要写成else return x.num<y.num;,当时有点事,忘记写了,本蒟蒻在此坑中跌落了n次
by waters__god @ 2023-03-03 21:31:26


本来是想发在灌水区的,但怕被人骂
by waters__god @ 2023-03-03 21:31:54


@[zhangshuomeimou](/user/549383) 感谢警示, 原代码: ```cpp #include<bits/stdc++.h> using namespace std; struct stu{ string name; int year,month,day; }; bool cmp(stu x,stu y){ if(x.year==y.year){ if(x.month==y.month){ return x.day<y.day; } else{ return x.month<y.month; } } else{ return x.year<y.year; } } int main(){ stu a[105]; int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i].name>>a[i].year>>a[i].month>>a[i].day; } sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++){ cout<<a[i].name<<"\n"; } return 0; } ``` 根据您的提示,果然AC了:[(这里)](https://www.luogu.com.cn/record/103684010)。万分感谢!
by Present_Coming_Time @ 2023-03-04 21:16:19


@[PCT2506](/user/793625) 那我哪错了? ```cpp #include<bits/stdc++.h> using namespace std; struct node { string name; int num; } a[110]; inline bool cmp(node x,node y) { return x.num<y.num; } int n; inline int turn_to_int(string s) { int a,js=10000000; for(int i = 0;i<s.length();i++) { int b = s[i]-'0'; a=a+(b*js); js/=10; } return a; } int main() { cin>>n; for(int i = 1;i<=n;i++) { string s1,s2,s3,s4; cin>>a[i].name>>s1>>s2>>s3; if(s2.length()==1)s2="0"+s2; if(s3.length()==1)s3="0"+s3; s4=s1+s2+s3; a[i].num=turn_to_int(s4); } sort(a+1,a+n+1,cmp); for(int i = 1;i<=n;i++) { cout<<a[i].name<<endl; } return 0; } ```
by huyixuanpi @ 2023-03-15 21:26:02


@[huyixuanpi](/user/767635) 手写cmp时要注意 ```cpp bool cmp(stu x,stu y){ if(x.year==y.year){ if(x.month==y.month){ return x.day<y.day; } else{ return x.month<y.month; } } else{ return x.year<y.year; } } ```
by Present_Coming_Time @ 2023-03-15 21:35:16


@[PCT2506](/user/793625) 我是把三个数合到一起了,问题就是快排不稳定,WA了一个点。
by huyixuanpi @ 2023-03-15 21:38:16


@[huyixuanpi](/user/767635) sort呗
by Present_Coming_Time @ 2023-03-15 21:40:39


|