@[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