求大佬指出错误类型或者给个hack数据之类的
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+5;
struct fac{
int chinese;
int english;
int math;
int num;
int grade;
int all_point;
}a[N];
int n;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d%d%d",&a[i].chinese,&a[i].math,&a[i].english);
a[i].num=i;
a[i].all_point=a[i].chinese+a[i].math+a[i].english;
}
int last=-1;
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
if(a[i].all_point>a[j].all_point){
continue;
}else if(a[i].all_point==a[j].all_point){
if(a[i].chinese+a[i].math>a[j].chinese+a[j].math){
continue;
}else if(a[i].chinese+a[i].math==a[j].chinese+a[j].math){
if(max(a[i].chinese,a[i].math)>max(a[j].chinese,a[j].math)){
continue;
}else if(max(a[i].chinese,a[i].math)==max(a[j].chinese,a[j].math)){
a[i].grade=last;
a[j].grade=last;
}else{
swap(a[i],a[j]);
last--;
}
}else{
swap(a[i],a[j]);
last--;
}
}else{
swap(a[i],a[j]);
last--;
}
}
}
int l=0,r=0,lei=1;
for(int i=1;i<=n;i++){
if(a[i].grade>0){
continue;
}else if(a[i].grade==0){
a[i].grade=lei;
lei++;
}else{
int l=i,r=i;
int find=a[i].grade;
for(int j=i+1;j<=n;j++){
if(a[j].grade==find){
r=j;
}else{
break;
}
}
int x=lei;
for(int j=l;j<=r;j++){
a[j].grade=x;
lei++;
}
lei--;
}
}
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;
}