PAT Ranking (排名)

Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University. Each test is supposed to run simultaneously in several places, and the ranklists will be merged immediately after the test. Now it is your job to write a program to correctly merge all the ranklists and generate the final rank.

Input Specification:

Each input file contains one test case. For each case, the first line contains a positive number N (<=100), the number of test locations. Then N ranklists follow, each starts with a line containing a positive integer K (<=300), the number of testees, and then K lines containing the registration number (a 13-digit number) and the total score of each testee. All the numbers in a line are separated by a space.

Output Specification:

For each test case, first print in one line the total number of testees. Then print the final ranklist in the following format:

registration_number final_rank location_number local_rank

The locations are numbered from 1 to N. The output must be sorted in nondecreasing order of the final ranks. The testees with the same score must have the same rank, and the output must be sorted in nondecreasing order of their registration numbers.

Sample Input:

2

5

1234567890001 95

1234567890005 100

1234567890003 95

1234567890002 77

1234567890004 85

4

1234567890013 65

1234567890011 25

1234567890014 100

1234567890012 85

Sample Output:

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 <string>

 #include <algorithm>

 #include <vector>

 using namespace std;

 struct stu

 {

    int loc,frank,lrank,gra;

    string name;

 };

 bool cmp(stu s1,stu s2)

 {

     if(s1.frank==s2.frank)

     return s1.name<s2.name;

       return s1.frank<s2.frank;

 }

 bool cmpg(stu s1,stu s2)

 {

       return s1.gra>s2.gra;

 }

 int main()

 {

   int n;int k;int rank,count;

   int i,j;

     while(cin>>n)

   {

       vector<stu> total;

      for(i=;i<=n;i++)

      {

          cin>>k;

             vector<stu> s(k);

         for(j=;j<k;j++)

             {

                cin>>s[j].name>>s[j].gra;

                s[j].loc=i;

             }

             sort(s.begin(),s.end(),cmpg);

             count=;

             s[].lrank=;

             total.push_back(s[]);

             for(j=;j<k-;j++)

             {

                   if(s[j].gra==s[j+].gra)

                   {

                         s[j+].lrank=s[j].lrank;

                         count++;

                   }

                   else

                   {

                       s[j+].lrank=s[j].lrank+count;

                         count=;

                   }

                   total.push_back(s[j+]);

             }

      }

           sort(total.begin(),total.end(),cmpg);

           count=;

             total[].frank=;

             for(j=;j<total.size()-;j++)

             {

                   if(total[j].gra==total[j+].gra)

                   {

                         total[j+].frank=total[j].frank;

                         count++;

                   }

                   else

                   {

                       total[j+].frank=total[j].frank+count;

                         count=;

                   }

             }

             sort(total.begin(),total.end(),cmp);

             cout<<total.size()<<endl;

             for(i=;i<total.size();i++)

                   cout<<total[i].name<<" "<<total[i].frank<<" "<<total[i].loc<<" "<<total[i].lrank<<endl;

   }

   return ;

 }

PAT Ranking (排名)的更多相关文章

  1. 1025 PAT Ranking[排序][一般]

    1025 PAT Ranking (25)(25 分) Programming Ability Test (PAT) is organized by the College of Computer S ...

  2. 1141 PAT Ranking of Institutions[难]

    1141 PAT Ranking of Institutions (25 分) After each PAT, the PAT Center will announce the ranking of ...

  3. pat1025. PAT Ranking (25)

    1025. PAT Ranking (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Programmi ...

  4. PAT_A1141#PAT Ranking of Institutions

    Source: PAT A1141 PAT Ranking of Institutions (25 分) Description: After each PAT, the PAT Center wil ...

  5. PAT_A1025#PAT Ranking

    Source: PAT A1025 PAT Ranking Description: Programming Ability Test (PAT) is organized by the Colleg ...

  6. PAT甲级:1025 PAT Ranking (25分)

    PAT甲级:1025 PAT Ranking (25分) 题干 Programming Ability Test (PAT) is organized by the College of Comput ...

  7. PAT 甲级 1025 PAT Ranking

    1025. PAT Ranking (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Programmi ...

  8. A1025 PAT Ranking (25)(25 分)

    A1025 PAT Ranking (25)(25 分) Programming Ability Test (PAT) is organized by the College of Computer ...

  9. 1025 PAT Ranking (25分)

    1025 PAT Ranking (25分) 1. 题目 2. 思路 设置结构体, 先对每一个local排序,再整合后排序 3. 注意点 整体排序时注意如果分数相同的情况下还要按照编号排序 4. 代码 ...

随机推荐

  1. CF Pangram

    Pangram time limit per test 2 seconds memory limit per test 256 megabytes input standard input outpu ...

  2. hdu 2196 树形dp

    思路:先求以1为根时,每个节点到子节点的最大长度.然后再次从1进入进行更新. #include<iostream> #include<cstring> #include< ...

  3. hdu 4632 动态规划

    思路:dp[i][j]表示区间(i,j)中回文串的个数,那么dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1]:如果str[i]==str[j],那么dp[i][j ...

  4. 转:云计算的三种服务模式:IaaS,PaaS和SaaS

    转: http://www.cnblogs.com/beanmoon/archive/2012/12/10/2811547.html 云服务”现在已经快成了一个家喻户晓的词了.如果你不知道PaaS, ...

  5. oracle 取随机数据

    --取随机数据 select dbms_random.value from dual; ); --百分比

  6. bash下自动重新运行git/curl等工具

    在使用诸如git/curl等工具的时候,如果网络状况不佳,经常会产生出错中断的情况,于是我们就会发现晚上挂机的下载一些代码和工具包,早上再看已经中断. 为应对这种情况我们需要判断下载工具的运行结果,如 ...

  7. centos 安装 acrobat Reader之后

    IV: 为Firefox等浏览器安装Acrobat Reader插件:sudo /usr/local/Adobe/Acrobat7.0/Browser/install_browser_plugin按照 ...

  8. HTTP状态码解读

    1xx:信息 消息 描述 100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求. 101 Switching Protocols 服务器转换协 ...

  9. 一步步搭建自己的轻量级MVCphp框架-(一)什么是PHP框架以及MVC设计模式

    PHP框架 php框架对很多新手而言可能会觉得很难攀越,其实不然 ,只要知道一个框架的流程,明白原理了,基本类似框架都可以看懂,php框架真正的发展要从php5开始了,其实php4时代就有一些框架,但 ...

  10. 随机生成MyEclipse注册码

    package com.registercode; import java.io.BufferedReader;import java.io.IOException;import java.io.In ...