30pts求调……
查看原帖
30pts求调……
430266
qsy8515楼主2024/4/25 20:52

代码样例+前三个测试点能过,但是调了很久都没发现问题,求调

#include<bits/stdc++.h>
using namespace std;
struct score{
    int c,m,e,tot,num,rank;
}a[100010];
bool cmp(score x,score y)
{
    if(x.tot==y.tot)
    {
        if(x.c+y.m!=y.c+y.m) return x.c+x.m>y.c+y.m;
        return max(x.c,x.m)>max(y.c,y.m);
    }
    return x.tot>y.tot;
}
bool binlie(score x,score y)
{
    if(x.tot==y.tot&&x.c+x.m==y.c+y.m&&max(x.c,x.m)==max(y.c,y.m))
      return true;
    return false;
}
int n;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].c>>a[i].m>>a[i].e;
        a[i].tot=a[i].c+a[i].m+a[i].e,a[i].num=i;
    }
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=n;i++)
    {
        if(binlie(a[i-1],a[i])) a[i].rank=a[i-1].rank;
        else a[i].rank=i;
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(a[j].num==i)
            {
                cout<<a[j].rank<<endl;
                break;
            }
        }
    }
    return 0;
}

拜谢大佬。

2024/4/25 20:52
加载中...