社区讨论
30分求改必关注
B3968[GESP202403 五级] 成绩排序参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mlnu7wpd
- 此快照首次捕获于
- 2026/02/15 22:25 4 天前
- 此快照最后确认于
- 2026/02/16 18:12 3 天前
CPP有点示山别介意
#include<bits/stdc++.h>
using namespace std;
int n;
struct node{
int c,m,e,z,num;
}a[10001];
int m[10001];
bool cmp(node a,node b){
if(a.z!=b.z){
return a.z>b.z;
}else{
if(a.c+a.m!=b.c+b.m){
return a.c+a.m>b.c+b.m;
}else{
if(max(a.c,a.m)!=max(b.c,b.m)){
return max(a.c,a.m)>max(b.c,b.m);
}else{
return 0;
}
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].c>>a[i].m>>a[i].e;
a[i].num=i;
a[i].z=a[i].c+a[i].e+a[i].m;
}
sort(a+1,a+1+n,cmp);
int zj=0;
int zf=-999,cmzf=-999,cmmax=-999;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[j].num==i){
if(a[j].z==zf&&a[j].c+a[j].m==cmzf&&max(a[j].c,a[j].m)==cmmax){
zj++;
cout<<j-zj<<endl;
}else{
zf=a[j].z;
cmzf=a[j].c+a[j].m;
cmmax=max(a[j].c,a[j].m);
cout<<j<<endl;
}
}
}
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...