有无大佬
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define cl(a) memset(a,0,sizeof a)
#define copy(a,b) copy(begin(a),end(a),begin(b))
#define rank paiming
struct rank{
ll medal,id;
}Au_rank[2000050],Ag_rank[2000050],Cu_rank[2000050];
ll n,Au_best,Ag_best,Cu_best;
ll rank_in_Au[2000050],rank_in_Ag[2000050],rank_in_Cu[2000050];
bool cmp(rank a,rank b){
return a.medal>b.medal;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);cout.tie(NULL);
cin>>n;
for(ll i=1;i<=n;i++){
cin>>Au_rank[i].medal>>Ag_rank[i].medal>>Cu_rank[i].medal;
Au_rank[i].id=Ag_rank[i].id=Cu_rank[i].id=i;
}
sort(Au_rank+1,Au_rank+n+10,cmp);
sort(Ag_rank+1,Ag_rank+n+10,cmp);
sort(Cu_rank+1,Cu_rank+n+10,cmp);
Au_rank[0].medal=Ag_rank[0].medal=Cu_rank[0].medal=1145141919810;
for(ll i=1;i<=n;i++){
if(Au_rank[i].medal!=Au_rank[i-1].medal){
rank_in_Au[Au_rank[i].id]=Au_best=i;
}else{
rank_in_Au[Au_rank[i].id]=Au_best;
}
if(Ag_rank[i].medal!=Ag_rank[i-1].medal){
rank_in_Ag[Ag_rank[i].id]=Ag_best=i;
}else{
rank_in_Ag[Ag_rank[i].id]=Ag_best;
}
if(Cu_rank[i].medal!=Cu_rank[i-1].medal){
rank_in_Cu[Cu_rank[i].id]=Cu_best=i;
}else{
rank_in_Cu[Cu_rank[i].id]=Cu_best;
}
}
for(ll i=1;i<=n;i++){
cout<<min(rank_in_Ag[i],min(rank_in_Au[i],rank_in_Cu[i]))<<endl;
}
return 0;
}