```cpp
#include <bits/stdc++.h>
using namespace std;
int n;
struct CJ {
int c, m, e, sum, cm, maxcm, num, pm;
int x;
} cj[114514];
bool cmp(CJ x, CJ y) {
if (x.sum != y.sum) {
return x.sum > y.sum;
}
if (x.cm != y.cm) {
return x.cm > y.cm;
}
if (x.maxcm != y.maxcm) {
return x.maxcm > y.maxcm;
}
return false;
}
bool cmp2(CJ a, CJ b) {
return a.num < b.num;
}
int main() {
cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> cj[i].c >> cj[i].m >> cj[i].e;
cj[i].sum = cj[i].c + cj[i].m + cj[i].e;
cj[i].cm = cj[i].c + cj[i].m;
cj[i].maxcm = max(cj[i].c, cj[i].m);
cj[i].num = i;
}
sort(cj + 1, cj + 1 + n, cmp);
for (int v = 1; v <= n; v++) {
if (cj[v].sum == cj[v - 1].sum && cj[v].cm == cj[v - 1].cm && cj[v].maxcm == cj[v - 1].maxcm)
cj[v].x = cj[v - 1].x;
else
cj[v].x = v;
}
sort(cj + 1, cj + n + 1, cmp2);
for (int i = 1; i <= n; i++) {
cout << cj[i].x << "\n";
}
return 0;
}
```
by yuanzilin @ 2024-06-17 20:48:54