#include<bits/stdc++.h>
using namespace std;
struct node{
int ch,ma,en,cm,cmg,zf,pm;
bool zg;
};
bool cmp(node x,node y){
if(x.zf>y.zf) return x.zf<y.zf;
if(x.cm>y.cm) return x.cm<y.cm;
if(x.cmg>y.cmg) return x.cmg<y.cmg;
else return x.zf>y.zf;
}
node a[10005],b[10005];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin>>n;
a[0].ch=0,a[0].cm=0,a[0].cmg=0,a[0].en=0,a[0].ma=0,a[0].zf=-1;
for(int i=1;i<=n;i++){
cin>>a[i].ch>>a[i].ma>>a[i].en;
a[i].cm=a[i].ch+a[i].ma;
a[i].cmg=max(a[i].ch,a[i].ma);
a[i].zf=a[i].ch+a[i].ma+a[i].en;
b[i].ch=a[i].ch;
b[i].en=a[i].en;
b[i].cm=a[i].cm;
b[i].cmg=a[i].cmg;
b[i].ma=a[i].ma;
b[i].zf=a[i].zf;
}
sort(a+1,a+1+n,cmp);
// for(int i=1;i<=n;i++){
// cout<<a[i].ch<<" "<<a[i].ma<<" "<<a[i].en<<'\n';
// }
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i].ch==b[j].ch&&a[i].en==b[j].en&&a[i].ma==b[j].ma){
a[j].pm=j;
break;
}
}
}
for(int i=1;i<=n;i++){
cout<<a[i].pm<<'\n';
}
return 0;
}
输出: 1 2 3 4 5 6(已加\n,此处为了方便而没换行)