哪位大佬能高抬贵手吗?(壶关)
查看原帖
哪位大佬能高抬贵手吗?(壶关)
995569
L__B楼主2024/7/1 17:30
#include<bits/stdc++.h>
using namespace std;
struct st{
    int c,m,e,s,id,p;
}a[10001];
bool cmp1(st x,st y){
    if(x.s==y.s)
      if(x.c+x.m==y.c+y.m)
        if(max(x.c,x.m)!=max(y.c,y.m))
          return max(x.c,x.m)>max(y.c,y.m);
        else return x.id<y.id;
      else return x.c+x.m>y.c+y.m;
    return x.s>y.s;
}
bool cmp2(st x,st y){
    return x.id<y.id;
}
int n,j;
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d%d%d",&a[i].c,&a[i].m,&a[i].e);
        a[i].s=a[i].c+a[i].m+a[i].e;
        a[i].id=i;
    }
    sort(a+1,a+1+n,cmp1);
    for(int i=1;i<=n;i++){
        if(a[i].s!=a[i-1].s) j++;
        a[i].p=j;
    }
    sort(a+1,a+1+n,cmp2);
    for(int i=1;i<=n;i++)
      printf("%d\n",a[i].p);
    return 0;
}

样例输入:

6
140 140 150
140 149 140
148 141 140
141 148 140
145 145 139
0 0 0

样例输出:

1
3
4
4
2
6

我的输出:

1
2
2
2
2
3
2024/7/1 17:30
加载中...