社区讨论
30分求调 干崩溃了
B3968[GESP202403 五级] 成绩排序参与者 4已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @m2hndqd1
- 此快照首次捕获于
- 2024/10/20 21:52 去年
- 此快照最后确认于
- 2025/11/04 16:39 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
const int maxn=10002;
struct s{
int num,a,b,c,total,pai;
}t[maxn],l[maxn];
bool cmp(s x,s y){
if(x.total>y.total){
return true;
}
else if(x.total==y.total&&x.a+x.b>y.a+y.b){
return true;
}
else if(x.total==y.total&&x.a+x.b==y.a+y.b&&max(x.a,x.b)>max(y.a,y.b)){
return true;
}
else{
return false;
}
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++){
t[i].num=i;
cin>>t[i].a>>t[i].b>>t[i].c;
t[i].total=t[i].a+t[i].b+t[i].c;
}
stable_sort(t+1,t+1+n,cmp);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(t[j].num==i){
l[i]=t[j];
l[i].pai=j;
}
}
}
for(int i=1;i<=n;i++){
int end=0;
for(int j=i+1;j<=n;j++){
if(l[i].total==l[j].total&&l[i].a+l[i].b==l[j].a+l[j].b&&max(l[i].a,l[i].b)==max(l[j].a,l[j].b)){
l[j].pai=l[i].pai;
end=j;
}
else break;
}
if(end!=0) i+=(end-i+1);
// cout<<l[i].pai<<endl;
}
for(int i=1;i<=n;i++){
cout<<l[i].pai<<endl;
}
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...