• 721(排序) PAT排名汇总


    计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准(网址http://www.patest.cn)。

    每次考试会在若干个不同的考点同时举行,每个考点用局域网,产生本考点的成绩。考试结束后,各个考点的成绩将即刻汇总成一张总的排名表。

    现在就请你写一个程序自动归并各个考点的成绩并生成总排名表。

    输入格式:

    输入的第一行给出一个正整数N(≤100),代表考点总数。随后给出N个考点的成绩,格式为:首先一行给出正整数K(≤300),代表该考点的考生总数;随后K行,每行给出1个考生的信息,包括考号(由13位整数字组成)和得分(为[0,100]区间内的整数),中间用空格分隔。

    输出格式:

    首先在第一行里输出考生总数。随后输出汇总的排名表,每个考生的信息占一行,顺序为:考号、最终排名、考点编号、在该考点的排名。其中考点按输入给出的顺序从1到N编号。考生的输出须按最终排名的非递减顺序输出,获得相同分数的考生应有相同名次,并按考号的递增顺序输出。

    输入样例:

    2
    5
    1234567890001 95
    1234567890005 100
    1234567890003 95
    1234567890002 77
    1234567890004 85
    4
    1234567890013 65
    1234567890011 25
    1234567890014 100
    1234567890012 85
    

    输出样例:

    9
    1234567890005 1 1 1
    1234567890014 1 2 1
    1234567890001 3 1 2
    1234567890003 3 1 2
    1234567890004 5 1 4
    1234567890012 5 2 2
    1234567890002 7 1 5
    1234567890013 8 2 3
    1234567890011 9 2 4
    
     
     
     
    #include<iostream>
    #include<algorithm>
    #define MAX_SIZE 50010
    using namespace std;
    
     struct Score{
       string num;
       int score;
       int kaodian;
       int mingci;
       int z_mingci;
    } ;
    int cmp(Score s1,Score s2){
        if(s1.score==s2.score)
            return  s1.num<s2.num;
        else
            return s1.score>s2.score;
    
    }
    
    
    int main(){
        int k,n,z=0,f;
        struct Score student[MAX_SIZE];
       cin>>k;
       for(int i=1;i<=k;i++){
        cin>>n;
    
        for(int j=0;j<n;j++){
            cin>>student[z].num>>student[z].score;
            student[z].kaodian=i;
            z++;
        }
         f=z-n;
         int p=1;
         sort(student+f,student+z,cmp);
         for(int q=f;q<z;q++){
                if(q==f)
            student[q].z_mingci=p;
         else
            if(student[q].score==student[q-1].score)
             student[q].z_mingci=student[q-1].z_mingci;
         else
            student[q].z_mingci=p;
            p++;
         }
       }
        sort(student,student+z,cmp);
        for(int i=0;i<z;i++){
            if(i==0){
                student[i].mingci=1;
    
            }
            else
            if(student[i].score==student[i-1].score){
                student[i].mingci=student[i-1].mingci;
    
            }
            else student[i].mingci=i+1;
        }
             cout<<z<<endl;
          for(int i=0;i<z;i++){
    
             cout<<student[i].num<<" "<<student[i].mingci<<" "<<student[i].kaodian<<" "<<student[i].z_mingci<<endl;
          }
         return 0;
    
    }
  • 相关阅读:
    以AO方式给SceneControl控件设置BaseHeight
    TreeView只能选中一个节点
    Excel导出DataTable
    TOCControl右键菜单
    Arcgis Engine符号化相关
    shapefile文件锁定问题
    ArcGIS符号库serverstyle文件编辑注意事项
    CentOS运维常用命令
    常用shell
    javascript浮点数相减、相乘出现一长串小数
  • 原文地址:https://www.cnblogs.com/xuyibao/p/7608297.html
Copyright © 2020-2023  润新知