#include<bits/stdc++.h>
using namespace std;
struct node
{
int ch,ma,en,id,sum;
}a[10005],b[10005];
bool cmp(node x,node y)
{
if(x.sum!=y.sum) return x.sum>y.sum;
if((x.ch+x.ma)!=(y.ch+y.ma)) return (x.ch+x.ma)>(y.ch+y.ma);
if(max(x.ch,x.ma)!=max(y.ch,y.ma)) return max(x.ch,x.ma)>max(y.ch,y.ma);
else return x.sum<y.sum;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].ch>>a[i].ma>>a[i].en;
a[i].sum=a[i].ch+a[i].ma+a[i].en;
b[i].ch=a[i].ch,b[i].ma=a[i].ma,b[i].en=a[i].en,b[i].sum=a[i].sum;
}
sort(a+1,a+n+1,cmp);
int cnt=0;
bool flag=false;
for(int i=1;i<=n;i++)
{
if(i==1)
{
cnt++;
a[i].id=1;
continue;
}
if(a[i].sum==a[i+1].sum&&a[i].ch+a[i].ma==a[i+1].ch+a[i+1].ma&&max(a[i].ch,a[i].ma)==max(a[i+1].ch,a[i+1].ma))
{
if(flag==true)
{
a[i].id=cnt;
a[i+1].id=cnt;
continue;
}
cnt++;
a[i].id=cnt;
a[i+1].id=cnt;
flag=true;
continue;
}
if(flag==true)
{
flag=false;
cnt++;
continue;
}
cnt++;
flag=false;
a[i].id=cnt;
}
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)
{
b[j].id=a[i].id;
}
}
}
for(int i=1;i<=n;i++) cout<<b[i].id<<endl;
return 0;
}
求助各位哪里有问题,请各位大神指点%%%