2 条题解
-
-2
#include <bits/stdc++.h> using namespace std; struct st{ int wz,jx,fen,mc,a,b,c; }; bool cmp1(st s1,st s2){ if(s1.fen==s2.fen){ int sum1=s1.a+s1.b; int sum2=s2.a+s2.b; if(sum1==sum2){ int x=max(s1.a,s1.b); int y=max(s2.a,s2.b); return x>y; }else{ return sum1>sum2; } }else{ return s1.fen>s2.fen; } } bool cmp2(st s1,st s2){ return s1.wz<s2.wz; } int n; st s[100010]; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>s[i].a>>s[i].b>>s[i].c; s[i].fen=s[i].a+s[i].b+s[i].c; s[i].wz=i; } sort(s+1,s+1+n,cmp1); s[1].jx=1; for(int i=2;i<=n;i++){ bool same=(s[i].fen==s[i-1].fen)&& (s[i].a+s[i].b==s[i-1].a+s[i-1].b)&& (max(s[i].a,s[i].b)==max(s[i-1].a,s[i-1].b)); if(same){ s[i].jx=s[i-1].jx; }else{ s[i].jx=i; } } sort(s+1,s+1+n,cmp2); for(int i=1;i<=n;i++){ cout<<s[i].jx<<endl; } return 0; }
信息
- ID
- 4777
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 7
- 已通过
- 6
- 上传者