PAT 1062. Talent and Virtue

题目:http://pat.zju.edu.cn/contests/pat-a-practise/1062

题解:

代码:

#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define MAX 100005
struct stu
{
    string id;
    int d;
    int c;
    int summ;
}stu[4][MAX];
bool cmp(const struct stu &a,const struct stu &b)
{
    if(a.summ>b.summ) return true;
    else if(a.summ==b.summ)
    {
        if(a.d>b.d) return true;
        else if(a.d==b.d) return a.id=h&&c>=h)
        {
            stu[0][len[0]].id=id;
            stu[0][len[0]].d=d;
            stu[0][len[0]].c=c;
            stu[0][len[0]].summ=d+c;
            ++len[0];
        }
        else if(d>=h)
        {
            stu[1][len[1]].id=id;
            stu[1][len[1]].d=d;
            stu[1][len[1]].c=c;
            stu[1][len[1]].summ=d+c;
            ++len[1];
        }
        else if(d=c)
        {
            stu[2][len[2]].id=id;
            stu[2][len[2]].d=d;
            stu[2][len[2]].c=c;
            stu[2][len[2]].summ=d+c;
            ++len[2];
        }
        else
        {
            stu[3][len[3]].id=id;
            stu[3][len[3]].d=d;
            stu[3][len[3]].c=c;
            stu[3][len[3]].summ=d+c;
            ++len[3];
        }
    }
    for(int i=0;i<4;++i)
        sort(stu[i],stu[i]+len[i],cmp);
    printf("%d\n",len[0]+len[1]+len[2]+len[3]);
    for(int i=0;i<4;++i)
        for(int j=0;j

来源: http://blog.csdn.net/acm_ted/article/details/20148217

你可能感兴趣的:(PAT)