//這是一道結構體的題除了繁就簡單
//可能有學號該如何同步搞定的問題>>>在結構體裏定義學號(number)然後根據循環賦值就OK。>>>結構體內定義不一定都要用
//這道題還是可以的***
//來源於NOIP普及組 NOIP2007 理論上C++會方便很多但是這道題在C語言的課上也是會拿來練習的畢竟真的很簡單
#include <stdio.h>
struct student{
int chinese;
int math;
int english;
int number;
int sum;
}s[1000];
int main(int argc, const char * argv[]) {
struct student temp,ex,t;
int n;
scanf("%d",&n);
/*讀入數據*/
for (int i=0; i<n; i++) {
scanf("%d%d%d",&s[i].chinese,&s[i].math,&s[i].english);
s[i].sum=s[i].chinese+s[i].math+s[i].english;
s[i].number=i+1;
}
for (int j=1; j<n; j++) {
for (int i=0; i<n-j; i++) {
if (s[i].sum<s[i+1].sum) {//sum
temp=s[i];s[i]=s[i+1]; s[i+1]=temp;
}
}
}
for (int j=1; j<n; j++) {
for (int i=0; i<n-j; i++) {
if (s[i].sum==s[i+1].sum) {//Chinese
if (s[i].chinese<s[i+1].chinese) {
ex=s[i];s[i]=s[i+1]; s[i+1]=ex;
}
}
}
}
for (int j=1; j<n; j++) {
for (int i=0; i<n-j; i++) {//number
if ((s[i].sum==s[i+1].sum)&& (s[i].chinese==s[i+1].chinese)) {
if (s[i].number>s[i].number) {
t=s[i];s[i]=s[i+1]; s[i+1]=t;
}
}
}
}
for (int i=0; i<5; i++) {
printf("%d %d\n",s[i].number,s[i].sum);
}
return 0;
}