社区讨论
后七个全RE
B3968[GESP202403 五级] 成绩排序参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lypix3bu
- 此快照首次捕获于
- 2024/07/17 15:31 2 年前
- 此快照最后确认于
- 2024/07/17 15:40 2 年前
求救,退了好久回来写题都不会了
CPP#include<bits/stdc++.h>
using namespace std;
const int N=10005;
struct fac{
int chinese;
int math;
int english;
int all;
int num;
int grade;
int tong;
}a[N];
int n;
int cmp1(fac x,fac y){
for(int i=1;i<=n;i++){
if(a[i].num==x.num){
a[i].tong=-1;
}
if(a[i].num==y.num){
a[i].tong=-1;
}
}
}
int cmp(fac a,fac b){
if(a.all>b.all){
return 1;
}else if(a.all==b.all){
if(a.chinese+a.math>b.chinese+b.math){
return 1;
}else if(a.chinese+a.math==b.chinese+b.math){
if(max(a.chinese,a.math)>max(b.chinese,b.math)){
return 1;
}else if(max(a.chinese,a.math)==max(b.chinese,b.math)){
cmp1(a,b);
return 1;
}
}
}
return 0;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
a[i].num=i;
scanf("%d%d%d",&a[i].chinese,&a[i].math,&a[i].english);
a[i].all=a[i].chinese+a[i].math+a[i].english;
}
sort(a+1,a+n+1,cmp);
int x=0;
for(int i=1;i<=n;i++){
if(a[i].tong==0){
a[i].grade=i;//
x=i;
}else{
a[i].grade=x;//x+1 or x
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[j].num==i){
printf("%d\n",a[j].grade);
break;
}
}
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...