社区讨论
求助!只过了第一个测试点
P1786帮贡排序参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lo8sedtc
- 此快照首次捕获于
- 2023/10/27 23:47 2 年前
- 此快照最后确认于
- 2023/10/27 23:47 2 年前
只过了第一个。。。。。
修改了好久,救救孩子吧!
CPP#include<bits/stdc++.h>
using namespace std;
struct inf{
string name,pro;
int grade,id;
long long gong;
};
bool cmp(inf x,inf y){
if(x.gong==y.gong) return x.id<y.id;
return x.gong>y.gong;
}
bool cmp2(inf x,inf y){
if(x.grade==y.grade) return x.id<y.id;
return x.grade>y.grade;
}
int main(){
int n;
struct inf a[112];
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i].name>>a[i].pro>>a[i].gong>>a[i].grade;
a[i].id=i;
}
sort(a+3,a+n,cmp);
for(int i=3;i<n;i++){
if(n>=4)
sort(a+3,a+5,cmp2);
else
sort(a+3,a+n,cmp2);
if(i<=4){
a[i].pro="HuFa";
continue;
}
if(n>=8)
sort(a+5,a+9,cmp2);
else
sort(a+5,a+n,cmp2);
if(i<=8){
a[i].pro="ZhangLao";
continue;
}
if(n>=15)
sort(a+9,a+16,cmp2);
else
sort(a+9,a+n,cmp2);
if(i<=15){
a[i].pro="TangZhu";
continue;
}
if(n>=40)
sort(a+15,a+41,cmp2);
else
sort(a+15,a+n,cmp2);
if(i<=40){
a[i].pro="JingYing";
continue;
}
sort(a+41,a+n,cmp2);
a[i].pro="BangZhong";
}
for(int i=0;i<n;i++){
printf("%s %s %d\n",a[i].name.c_str(),a[i].pro.c_str(),a[i].grade);
}
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...