后七个全RE
查看原帖
后七个全RE
898114
MTF_Lambda_04楼主2024/7/17 15:29

求救,退了好久回来写题都不会了

#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;
}
2024/7/17 15:29
加载中...