30分求助!!
查看原帖
30分求助!!
1237046
JiangHaoXuan15楼主2024/11/24 22:02

不知道如何处理并列的情况……求助!

#include <iostream>
#include <algorithm>
using namespace std;
struct st
{
    int name, c, m, e;
};
bool cmp(st, st);
int main()
{
    int n, b[10005];
    st s[10005];
    cin >> n;
    for(int i=1;i<=n;i++)
    {
        s[i].name=i;
        cin >> s[i].c >> s[i].m >> s[i].e;
    }
    sort(s+1, s+n+1, cmp);
    for(int i=1;i<=n;i++)
    {
        b[s[i].name]=i;
    }
    for(int i=1;i<=n;i++)
    {
        cout << b[i] << endl;
    }
    return 0;
}
bool cmp(st a, st b)
{
    if(a.c+a.m+a.e!=b.c+b.m+b.e)
    {
        return a.c+a.m+a.e>b.c+b.m+b.e;
    }
    if(a.c+a.m!=b.c+b.m)
    {
        return a.c+a.m>b.c+b.m;
    }
    if(max(a.c, a.m)!=max(b.c, b.m))
    {
        return max(a.c, a.m)>max(b.c, b.m);
    }
    return false;
}

2024/11/24 22:02
加载中...