...每日一题
5520 桃园结义经验值:800
题目描述 Description
东汉末年,刘备结识了关羽和张飞,他们决定一起匡扶汉室。于是在桃园结义,此时需要知道谁是大哥,要按照年龄排序。这个问题很简单。现在假设不止3个人,而是有n个人,请你帮这n个人按年龄从大到小排序。
输入描述 Input Description
第一行,一个整数n,表示人数
接下来n行,每行4个部分,name y m d,表示这个人的姓名和出生的年月日
输出描述 Output Description
把这n个人按照年龄从大到小排序,如果年龄一样,按照输入的顺序,先输入的后输出
样例输入 Sample Input
3 LiuBei 2020 1 1 GuanYu 2020 1 2 ZhangFei 2020 1 3
样例输出 Sample Output
LiuBei GuanYu ZhangFei
数据范围及提示 Data Size & Hint
n<=10000
武建豪在2020-10-10 21:03:34追加了内容
瞎写的,找错
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
struct STU{
string name;
int a,y,m,d;
}s[100001];
bool cmp(STU x,STU y){
if(x.a!=y.a) return x.a>y.a;
return x.name<y.name;
return x.y<y.y;
return x.m<y.m;
return x.d<y.d;
}
int main(){
long long int n,i;
cin>>n;
for( i=1;i<=n;i++){
cin>>s[i].name>>s[i].a;
}
sort(s+1,s+n+1,cmp);
for( i=1;i<=n;i++){
cout<<s[i].name<<" "<<s[i].a<<endl;
}
return 0;
}
武建豪在2020-10-10 21:14:25追加了内容
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
struct STU{
string name;
int a,y,m,d;
} s[10010];
bool cmp(STU x,STU y){
if(x.y!=y.y) return x.y>y.y;
return x.name<y.name;
if(x.m!=y.m) return x.m>y.m;
return x.name<y.name;
if(x.d!=y.d) return x.d>y.d;
return x.name<y.name;
}
int main(){
long long int n,i;
cin>>n;
for( i=1;i<=n;i++){
cin>>s[i].name>>s[i].a;
}
sort(s+1,s+n+1,cmp);
for( i=1;i<=n;i++){
cout<<s[i].name<<endl;
}
return 0;
}
武建豪在2020-10-10 21:46:54追加了内容
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
struct STU{
string name;
int a,y,m,d;
} s[10010];
bool cmp(STU x,STU y){
if(x.y!=y.y) return x.y<y.y;
if(x.m!=y.m) return x.m<y.m;
if(x.d!=y.d) return x.d<y.d;
return x.d>y.d;
}
int n;
int main(){
cin>>n;
long long i;
for( i=1;i<=n;i++){
cin>>s[i].y>>s[i].m>>s[i].d;
}
sort(s+1,s+n+1,cmp);
for( i=1;i<=n;i++){
cout<<s[i].name<<" ";
}
return 0;
}@沙宸安
武建豪在2020-10-10 21:57:39追加了内容
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
struct STU{
string name;
int a,y,m,d;
} s[10010];
bool cmp(STU x,STU y){
if(x.y!=y.y) return x.y<y.y;
if(x.m!=y.m) return x.m<y.m;
if(x.d!=y.d) return x.d<y.d;
return x.d>y.d;
}
int n;
int main(){
cin>>n;
long long i;
for( i=1;i<=n;i++){
cin>>s[i].y>>s[i].m>>s[i].d>>s[i].name;
}
sort(s+1,s+n+1,cmp);
for( i=1;i<=n;i++){
cout<<s[i].name<<" ";
}
return 0;
}
武建豪在2020-10-10 22:08:50追加了内容
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
struct STU{
string name;
int a,y,m,d;
} s[10010];
bool cmp(STU x,STU y){
if(x.y!=y.y) return x.y<y.y;
if(x.m!=y.m) return x.m<y.m;
if(x.d!=y.d) return x.d<y.d;
return x.d>y.d;
}
int n;
int main(){
cin>>n;
long long i;
for(i=1;i<=n;i++){
cin>>s[i].name>>s[i].y>>s[i].m>>s[i].d;
}
sort(s+1,s+n+1,cmp);
for( i=1;i<=n;i++){
cout<<s[i].name<<endl;
}
return 0;
}
@沙宸安
武建豪在2020-10-11 09:50:08追加了内容
看我千斤顶!
武建豪在2020-10-11 10:53:10追加了内容
顶
武建豪在2020-10-11 10:55:55追加了内容
tm就是不对
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
struct STU{
string name;
int a,y,m,d,i;
for(int i=1;i<=n;i++){
s[i].id=i;
}
} s[10010];
bool cmp(STU x,STU y){
if(x.y!=y.y) return x.y<y.y;
if(x.m!=y.m) return x.m<y.m;
if(x.d!=y.d) return x.d<y.d;
return x.d>y.d;
return x.id>y.id;
}
@赵逸凡 @李泽远
@侯平仄
@王子逸
@王子健
武建豪在2020-10-11 10:56:20追加了内容
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
struct STU{
string name;
int a,y,m,d,i;
for(int i=1;i<=n;i++){
s[i].id=i;
}
} s[10010];
bool cmp(STU x,STU y){
if(x.y!=y.y) return x.y<y.y;
if(x.m!=y.m) return x.m<y.m;
if(x.d!=y.d) return x.d<y.d;
return x.d>y.d;
return x.id>y.id;
}
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i].name>>s[i].y>>s[i].m>>s[i].d;
}
sort(s+1,s+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<s[i].name<<endl;
}
return 0;
}
武建豪在2020-10-11 11:36:42追加了内容
样例过了,但是提交0分
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
struct STU{
string name;
int a,y,m,d,id,i;
} s[10010];
bool cmp(STU x,STU y){
if(x.y!=y.y) return x.y<y.y;
if(x.m!=y.m) return x.m<y.m;
if(x.d!=y.d) return x.d<y.d;
return x.d>y.d;
return x.id>y.id;
}
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i].name>>s[i].y>>s[i].m>>s[i].d;
}
for(int i=1;i<=n;i++){
s[i].id=i;
}
sort(s+1,s+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<s[i].name<<endl;
}
return 0;
}
@沙宸安
武建豪在2020-10-11 13:27:26追加了内容
顶
我整理了一下:
1、输入有问题
2、输出有问题,应空格不是换行
3、cmp return x.name<y.name;是多余语句
4、排反了,把 > 改成 <
5、还要考虑一下出生同年同月同日的情况 return x.d>y.d;
我整理了一下:
1、输入有问题
2、cmp return x.name<y.name;是多余语句
3、排反了,把 > 改成 <
4、还要考虑一下出生同年同月同日的情况 return x.d>y.d;
沙宸安在2020-10-10 21:49:45追加了内容
还是不过吗?
沙宸安在2020-10-10 21:59:05追加了内容
你没输入s[i].name啊!
沙宸安在2020-10-10 22:03:23追加了内容
没人了?
