#include<bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
struct node1 {
string name;
int c, m, e, sum;
};
node1 a[N];
int n;
int main() {
cin >> n;
for (int i = 1; i <= n; i++){
cin >> a[i].name >> a[i].c >> a[i].m >> a[i].e;
a[i].sum = a[i].c + a[i].m + a[i].e;
}
// 两两比较
for (int i = 1; i < n; i++)
for (int j = i + 1; j <= n; j++) {
if (abs(a[i].c - a[j].c) <= 5 && abs(a[i].m - a[j].m) <= 5 && abs(a[i].e - a[j].e) <= 5 && abs(a[i].sum - a[j].sum) <= 10) {
cout << a[i].name << " " << a[j].name << endl;
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
struct node {
string name;
int chinese, english, math, sum;
int id;
// 自定义排队规则
bool operator<(const node a) const {
if (sum != a.sum)
return sum > a.sum;
return id < a.id;
}
};
int n;
node a[N];
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i].name >> a[i].chinese >> a[i].math >> a[i].english;
a[i].sum = a[i].chinese + a[i].math + a[i].english;
a[i].id = i;
}
// sort(排序的起始位置 ,排序的结束位置)
sort(a + 1, a + 1 + n );
cout << a[1].name << " " << a[1].chinese << " " << a[1].math << " " << a[1].english;
return 0;
}