资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
给出n个学生的成绩,将这些学生按成绩排序,
排序规则,优先考虑数学成绩,高的在前;数学相同,英语高的在前;数学英语都相同,语文高的在前;三门都相同,学号小的在前
输入格式
第一行一个正整数n,表示学生人数
接下来n行每行3个0~100的整数,第i行表示学号为i的学生的数学、英语、语文成绩
输出格式
输出n行,每行表示一个学生的数学成绩、英语成绩、语文成绩、学号
按排序后的顺序输出
样例输入
2
1 2 3
2 3 4
样例输出
2 3 4 2
1 2 3 1
数据规模和约定
n≤100
满分代码如下:
#include
using namespace std;
int main(){
int i,j,n,t;
cin>>n;
int a[n+2],b[n+2],c[n+2],d[n+2];
for(i=0;i
cin>>a[i]>>b[i]>>c[i];
d[i]=i+1;
}
for(i=0;i
for(j=i+1;j
if(a[i]
t=a[i];a[i]=a[j];a[j]=t;
t=b[i];b[i]=b[j];b[j]=t;
t=c[i];c[i]=c[j];c[j]=t;
t=d[i];d[i]=d[j];d[j]=t;
}else if(a[i]==a[j]){
if(b[i]
t=a[i];a[i]=a[j];a[j]=t;
t=b[i];b[i]=b[j];b[j]=t;
t=c[i];c[i]=c[j];c[j]=t;
t=d[i];d[i]=d[j];d[j]=t;
}else if(b[i]==b[j]){
if(c[i]
t=a[i];a[i]=a[j];a[j]=t;
t=b[i];b[i]=b[j];b[j]=t;
t=c[i];c[i]=c[j];c[j]=t;
t=d[i];d[i]=d[j];d[j]=t;
}
}
}
}
}
for(i=0;i
cout<