首页 > 其他分享 >PAT 排名

PAT 排名

时间:2024-09-13 23:27:18浏览次数:3  
标签:输出 PAT int rank grade grades 排名 100

编程能力测试(PAT)由浙江大学计算机科学与技术学院组织。

每次测试都会在多个地区同时进行,测试完成后,将会对成绩进行统计与合并,生成总排名。

你的任务就是编写一个程序,将各地区人员的成绩合并汇总,生成最终排名。

输入格式

第一行包含整数 NN,表示测试将会在 NN 个地区同时进行。

接下来是 NN 个地区的成绩列表。

每个地区的成绩列表,第一行包含整数 KK,表示该地区的测试人数。

接下来 KK 行,每行包含一个学生的考号(1313 位数字)以及该学生的成绩。

输出格式

第一行输出总考生人数。

然后用以下格式输出最终成绩排名列表:

registration_number final_rank location_number local_rank

也就是输出考号,最终排名,地区编号,地区排名。

地区编号按输入顺序依次为 1∼N1∼N。

按照最终排名从前到后的顺序输出每个人的信息。

具有相同分数的人的排名也要相同,相同分数的人,考号较小的先输出。

数据范围

1≤N≤1001≤N≤100,
1≤K≤3001≤K≤300,
分数在 [0,100][0,100] 范围内。

输入样例:
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 <bits/stdc++.h>
 using namespace std;
 const int N=110;
 const int K=310;
 struct student
 {
     string id;
  int grade,  num, final_rank , local_rank;
  bool operator <(const student &t)
  {
      if(grade!=t.grade)
        return grade>t.grade;
      return id<t.id; 
  }
 };
//  bool cmp(student a,student b)
//  {
//      if(a.grade!=b.grade)
//         return a.grade>b.grade;
//      return a.id<b.id;
//  }
 vector<student>grades[N];
 vector<student>all;
 int main()
 {
     ios::sync_with_stdio(false);
     cin.tie(0);
     cout.tie(0);
     int n;
     cin>>n;
    for(int i=0;i<n;i++)
    // while(n--)
     { 
         int k;
         cin>>k;
        
         for(int j=0;j<k;j++)
         {
             string s;int score;
             cin>>s>>score;
            //  grades[i][j].id=s;
            //  grades[i][j].grade=score;
            //  grades[i][j].num=i+1;
            grades[i].push_back({s,score,i+1,0,0});
             
             
         }
         sort(grades[i].begin(),grades[i].end());
         for(int j=0;j<k;j++)
         {
             if(!j||grades[i][j].grade!=grades[i][j-1].grade)
                grades[i][j].local_rank=j+1;
            else grades[i][j].local_rank=grades[i][j-1].local_rank;
             all.push_back(grades[i][j]);
         }
        //  for(auto &it:grades[i])
        //  {
        //      cout<<it.local_rank<<endl;
        //  }
         
         
     }
     sort(all.begin(),all.end());
      for(int j=0;j<all.size();j++)
         {
             if(!j||all[j].grade!=all[j-1].grade)
               all[j].final_rank=j+1;
            else all[j].final_rank=all[j-1].final_rank;
             
         }
    cout<<all.size()<<endl;
    for(auto &it:all)
    {
        cout<<it.id<<" "<<it.final_rank<<" "<<it.num<<" "<<it.local_rank<<endl;
    }
     
     
 }

标签:输出,PAT,int,rank,grade,grades,排名,100
From: https://blog.csdn.net/black_blank/article/details/142236071

相关文章

  • JavaSE--零基础的开始笔记01:下载JDK以及Path环境变量的 配置
    Java概述(觉得没必要的可以直接跳过):Java是sun公司1995年推出,2009年被oracle收购又称为“甲骨文公司”。java之父:詹姆斯.高斯林java是一门高级语言,接近人类语言程序易懂。流行度很高,商业占用率高,特性是:可移植性---可跨平台         JavaSE:标准版,java技......
  • 时序必读论文05|PatchTST : 时序数据Patch已成趋势【ICLR 2023】
    书接上回,我们在之前的文章已经分析了直接把transformer应用到时间序列预测问题的不足,其中我们总结了4个不足:分别是:注意力机制的计算复杂度高,为O(N^2),并且计算得出的权重仅有少部分有用;注意力机制仅建立单时间点位之间的关系,实际能提取到的信息非常有限;对时序或者说位......
  • pathon_Sep(包的调用、常用模块)
    目录包的调用常用模块datetime模块random模块os模块sys模块pickle模块包的调用可以看一下day16这里先省略常用模块datetime模块#为什么要有datetime模块,datetime模块有什么用#时间的加减##importdatetime###获取当前时间#now=datetime.datetime.now()#......
  • 【机器学习】正则化-Dropout/DropPath
    1.DropoutDropout是一种正则化技术,通过在训练过程中随机移除部分神经元及其连接,从而减少神经网络对特定神经元的依赖,提升模型的泛化能力。具体而言,Dropout相当于在训练过程中从原始网络中随机采样出“更薄的”子网络,每个子网络的神经元数量较少。在前向传播和反向传播过......
  • postgresql-patroni高可用安装部署
    简介patroni+etcd,算是目前比较主流的PG高可用搭配了。patroni都出4.0版本了,一直没时间,断断续续写了好久,最近有人问到,那就当作一个笔记发表吧,自行搭建一个测试库做测试吧。来来回回改了好几遍。文中可能不妨地方没有同步修改的遗漏点。集群规划hostname/ip部署软件备注配置etcd1/......
  • LeetCode: 1407. 排名靠前的旅行者
    排名靠前的旅行者原题表:Users+---------------+---------+|ColumnName|Type|+---------------+---------+|id|int||name|varchar|+---------------+---------+id是该表中具有唯一值的列。name是用户名字。表:Rides......
  • dotnet 测试在 Linux 系统上的 Environment.GetFolderPath 行为
    由于Environment.GetFolderPath可以传入的参数里面,有许多都是Windows系统特有的,在Linux上不存在的,也没有映射对应的文件夹。本文将在WSLDebian和UOS系统上测试Environment.GetFolderPath行为测试使用Environment.SpecialFolder的各个枚举获取路径的代码如下......
  • multipath多路径硬盘扩容
    Rose+多路径环境操作前建议先记录相关硬盘信息,如cat/etc/multipath.confmultipath-llls-l/dev/mapper/lsblk-fcat/etc/multipath/wwidscat/etc/multipath/bindings新增硬盘以从节点1查看相关信息为例首先存储中新建卷app2,设置大小为220G,并分别映射至两个主机......
  • 使用css属性—clip-path完成胶囊导航按钮
    使用css属性—clip-path完成胶囊导航按钮先看效果更多API上代码先看效果主要是为了实现胶囊内的颜色分割:更多APIclip-path属性常用的函数:API描述参数circle()创建一个圆形裁剪区域半径和圆心的坐标ellipse()创建一个椭圆形裁剪区域横轴和纵轴的半径以及圆心的坐......
  • PLC结构化文本(ST)——实例路径属性(attribute 'instance-path')
    PLCStructuredTextObjectOrientedProgrammingPLC结构化文本(ST)——实例路径属性(attribute'instance-path')作用该属性可以使用字符串变量获取POU的实例路径,用于日志记录和故障排查非常方便。语法{attribute'instance-path'}代码示例{attribute'reflection'}FU......