题解
2025-02-16 18:02:38
发布于:江苏
3阅读
0回复
0点赞
代码cmp简化与id思路来自榜一法姐和榜三想学,可以看看他们的,比我好
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
int n;
struct awa
{
    string s;
    int a,b,c,h,id;
}x[1000005];
bool cmp(awa x,awa y)
{
    if(x.h!=y.h)
    {
        return x.h>y.h;
    }
    else
    {
        if(x.a!=y.a)
        {
            return x.a>y.a;
        }
        else
        {
            if(x.b!=y.b)
            {
                return x.b>y.b;
            }
            else
            {
                if(x.c!=y.c)
                {
                    return x.c>y.c;
                }
            }
        }
    }
    return x.id<y.id;
}
int main(){
	cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>x[i].s;
        scanf("%d%d%d",&x[i].a,&x[i].b,&x[i].c);
        x[i].h=x[i].a+x[i].b+x[i].c;
        x[i].id=i;
    }
    sort(x+1,x+1+n,cmp);
    for(int i=1;i<=n;i++)
    {
        cout<<x[i].s<<" ";
        printf("%d\n",x[i].h);
    }
}
这里空空如也






有帮助,赞一个