码迷,mamicode.com
首页 > 其他好文 > 详细

1015 德才论 (25 分)

时间:2019-01-30 15:55:47      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:没有   ret   mat   info   text   style   bubuko   using   ios   

宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”

现给出一批考生的德才分数,请根据司马光的理论给出录取排名。

输入格式:

输入第一行给出 3 个正整数,分别为:N(≤10^5),即考生总数;L(≥60),为录取最低分数线,即德分和才分均不低于 L的考生才有资格被考虑录取;H(<100),为优先录取线——德分和才分均不低于此线的被定义为“才德全尽”,此类考生按德才总分从高到低排序;才分不到但德分到线的一类考生属于“德胜才”,也按总分排序,但排在第一类考生之后;德才分均低于 H,但是德分不低于才分的考生属于“才德兼亡”但尚有“德胜才”者,按总分排序,但排在第二类考生之后;其他达到最低线 L的考生也按总分排序,但排在第三类考生之后。

随后 N 行,每行给出一位考生的信息,包括:准考证号 德分 才分,其中准考证号为 8 位整数,德才分为区间 [0, 100] 内的整数。数字间以空格分隔。

输出格式:

输出第一行首先给出达到最低分数线的考生人数 M,随后 M行,每行按照输入格式输出一位考生的信息,考生按输入中说明的规则从高到低排序。当某类考生中有多人总分相同时,按其德分降序排列;若德分也并列,则按准考证号的升序输出。

 

 

分析:考两科,两科优先级不一样,就跟高考一样,总分相同,语文高的排前面,数学高的排在,英语高的前面。

就这。分成几个批次:1德才都比H高,最强的,按总分排。

          2然后就是德胜才的优先了。其中徳高于H的属于第二批次

          3德胜才,徳没有高于H,属于第三批次

          4其他高于L的渣渣属于第四批次

每个批次按总分排序  sort

 

 

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
struct node{
    int num,de,cai;
};
int cmp(struct node a,struct node b)
{
    if((a.de+a.cai)!=(b.de+b.cai))//分数不一样,按总分排 
        return (a.de+a.cai)>(b.de+b.cai);
    else if(a.de!=b.de)//分数一样,按徳分排 
        return a.de>b.de;
    else //都一样,按学号排 ,学号小的优先 
        return a.num<b.num;
}
int main()
{
    int n,l,h;
    cin>>n >>l>>h;
    vector<node> v[4];
    node tmp;
    int total=n;
    for(int i=0;i<n;i++)
    {
        cin>>tmp.num>>tmp.de>>tmp.cai;
        if(tmp.de<l||tmp.cai<l)total--;
        else if(tmp.de>=h&&tmp.cai>=h)
            v[0].push_back(tmp);
        else if(tmp.de>=h&&tmp.cai<h)
            v[1].push_back(tmp);
        else if(tmp.de<h&&tmp.de>=tmp.cai&&tmp.cai<h)
            v[2].push_back(tmp);
        else 
            v[3].push_back(tmp);
    }
    cout<<total<<endl;
    for (int i=0;i<4;i++)
    {
        sort(v[i].begin(),v[i].end(),cmp);
        for(int j=0;j<v[i].size();j++)
            cout<<v[i][j].num<<" "<<v[i][j].de<<" "<<v[i][j].cai<<endl;
    }
    return 0;
} 

 

运行结果

技术分享图片

然后要怎么办呢

改呗

 

cin改成scanf

技术分享图片

成了

 

1015 德才论 (25 分)

标签:没有   ret   mat   info   text   style   bubuko   using   ios   

原文地址:https://www.cnblogs.com/xx123/p/10337827.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!