1062 Talent and Virtue (25 分)难度: 简单 / 知识点: 排序

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1062 Talent and Virtue (25 分)难度: 简单 / 知识点: 排序相关的知识,希望对你有一定的参考价值。


https://pintia.cn/problem-sets/994805342720868352/problems/994805410555346944

#include<bits/stdc++.h>
using namespace std;
struct node {string id;int a,b;}temp;
vector<node>A,B,C,D;
int n,L,H;
bool cmp(node a,node b)
{
    if(a.a+a.b==b.a+b.b)
    {
        if(a.a==b.a) return a.id<b.id;
        return a.a>b.a;
    }
    return a.a+a.b>b.a+b.b;
}
void f(vector<node> &A){sort(A.begin(),A.end(),cmp);}
void print(vector<node> A) {for(int i=0;i<A.size();i++) printf("%s %d %d\\n",A[i].id.c_str(),A[i].a,A[i].b);}
int main(void)
{
    cin>>n>>L>>H;
    for(int i=0;i<n;i++)
    {
        cin>>temp.id>>temp.a>>temp.b;
        if(temp.a<L||temp.b<L) continue;
        if(temp.a>=H&&temp.b>=H) A.push_back(temp);
        else if(temp.a>=H&&temp.b>=L) B.push_back(temp);
        else if(temp.a<H&&temp.b<H&&temp.a>=temp.b) C.push_back(temp);
        else D.push_back(temp);
    }
    cout<<A.size()+B.size()+C.size()+D.size()<<endl;
    f(A),f(B),f(C),f(D);
    print(A),print(B),print(C),print(D);
    return 0;
}

以上是关于1062 Talent and Virtue (25 分)难度: 简单 / 知识点: 排序的主要内容,如果未能解决你的问题,请参考以下文章

1062. Talent and Virtue (25)

1062. Talent and Virtue (25)

PAT 1062 Talent and Virtue[难]

PAT-B 1015. 德才论(同PAT 1062. Talent and Virtue)

PAT B1015/A1062 Talent and Virtue

算法学习记录-排序题PAT A1062Talent and Virtue