【PAT甲级】1025 PAT Ranking (25 分)(结构体排序,MAP<string,int>映射)
题意:
输入一个正整数N(N<=100),表示接下来有N组数据。每组数据先输入一个正整数M(M<=300),表示有300名考生,接下来M行每行输入一个考生的ID和分数,ID由13位整数组成。求输出所有考生的数量并且按照考生在全体中的成绩排名以及ID的字典序输出ID和名词,并标注考生所在的考场编号以及他在考场中的排名。
AAAAAccepted code:
#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
map<string,int>mp;
typedef struct anss{
string s;
int final_rank;
int local_num;
int local_rank;
};
anss ans[];
typedef struct testee{
string num;
int score;
};
testee t[][];
testee a[];
bool cmp(testee a,testee b){
return a.score>b.score;
}
bool cmp1(anss a,anss b){
if(a.final_rank!=b.final_rank)
return a.final_rank<b.final_rank;
return a.s<b.s;
}
int cnt[];
int main(){
int n;
cin>>n;
int tt=;
int tot=;
for(int i=;i<=n;++i){
int m;
cin>>m;
cnt[i]=m;
for(int j=;j<=m;++j){
string s;
int x;
cin>>s>>x;
t[i][j].num=s;
t[i][j].score=x;
a[++tot].num=s;
a[tot].score=x;
mp[s]=++tt;
ans[tt].s=s;
ans[tt].local_num=i;
}
}
for(int i=;i<=n;++i){
sort(t[i]+,t[i]++cnt[i],cmp);
int no=;
int tmp=;
ans[mp[t[i][].num]].local_rank=++no;
for(int j=;j<=cnt[i];++j)
if(t[i][j].score!=t[i][j-].score){
ans[mp[t[i][j].num]].local_rank=++no;
tmp=no;
}
else{
ans[mp[t[i][j].num]].local_rank=tmp;
++no;
}
}
int sum=;
for(int i=;i<=n;++i)
sum+=cnt[i];
sort(a+,a++sum,cmp);
int no=;
int tmp=;
ans[mp[a[].num]].final_rank=++no;
for(int i=;i<=sum;++i)
if(a[i].score!=a[i-].score){
ans[mp[a[i].num]].final_rank=++no;
tmp=no;
}
else{
ans[mp[a[i].num]].final_rank=tmp;
++no;
}
sort(ans+,ans++sum,cmp1);
cout<<sum<<"\n";
for(int i=;i<=sum;++i)
cout<<ans[i].s<<" "<<ans[i].final_rank<<" "<<ans[i].local_num<<" "<<ans[i].local_rank<<"\n";
return ;
}
【PAT甲级】1025 PAT Ranking (25 分)(结构体排序,MAP<string,int>映射)的更多相关文章
- PAT 甲级 1028. List Sorting (25) 【结构体排序】
题目链接 https://www.patest.cn/contests/pat-a-practise/1028 思路 就按照 它的三种方式 设计 comp 函数 然后快排就好了 但是 如果用 c++ ...
- GO学习-(38) Go语言结构体转map[string]interface{}的若干方法
结构体转map[string]interface{}的若干方法 本文介绍了Go语言中将结构体转成map[string]interface{}时你需要了解的"坑",也有你需要知道的若 ...
- PAT 甲级 1025 PAT Ranking
1025. PAT Ranking (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Programmi ...
- PAT 甲级 1071 Speech Patterns (25 分)(map)
1071 Speech Patterns (25 分) People often have a preference among synonyms of the same word. For ex ...
- PAT 乙级 1085. PAT单位排行 (25) 【结构体排序】
题目链接 https://www.patest.cn/contests/pat-b-practise/1085 思路 结构体排序 要注意几个点 它的加权总分 是 取其整数部分 也就是 要 向下取整 然 ...
- PAT 甲级 1016 Phone Bills (25 分) (结构体排序,模拟题,巧妙算时间,坑点太多,debug了好久)
1016 Phone Bills (25 分) A long-distance telephone company charges its customers by the following r ...
- PAT甲级——1025 PAT Ranking
1025 PAT Ranking Programming Ability Test (PAT) is organized by the College of Computer Science and ...
- 【PAT甲级】1070 Mooncake (25 分)(贪心水中水)
题意: 输入两个正整数N和M(存疑M是否为整数,N<=1000,M<=500)表示月饼的种数和市场对于月饼的最大需求,接着输入N个正整数表示某种月饼的库存,再输入N个正数表示某种月饼库存全 ...
- PAT 甲级 1020 Tree Traversals (25分)(后序中序链表建树,求层序)***重点复习
1020 Tree Traversals (25分) Suppose that all the keys in a binary tree are distinct positive intege ...
- PAT 甲级 1146 Topological Order (25 分)(拓扑较简单,保存入度数和出度的节点即可)
1146 Topological Order (25 分) This is a problem given in the Graduate Entrance Exam in 2018: Which ...
随机推荐
- NTP网络授时服务器部署及网络时钟同步设置说明
NTP网络授时服务器部署及网络时钟同步设置说明 NTP网络授时服务器部署及网络时钟同步设置说明 本文由安徽京准科技提供@请勿转载. 一.前言 1.NTP简介 NTP是网络时间协议(Network T ...
- css积累
1. 图片底部3像素的问题解决方案 display: inline-block; vertical-align: bottom;
- as中怎么下载更新platforms和build-tools
链接:https://blog.csdn.net/sunbinkang/article/details/78632652
- element-ui表头render-header 传自定义参数
最近用到 element 的表格的 render-header 这个属性查了文档 发现: 发现它会返回部分参数 但是因为考虑要工程化,需要自定义传入参数,后来找度娘 ,发现是可以自定义传参的 :re ...
- IIS反向代理配置教程(最终完整版本)
IIS代理配置教程 插件下载:https://download.csdn.net/download/song_yan_/11996489 一.安装反向代理插件 1.rewrite插件安装 (1) 双击 ...
- ios 底部用定位 fixed。在软件盘出来后,页面元素被顶上去一部分,fixed定位的footer也跑到了上面去。解决方法
ios 底部用定位 fixed.在软件盘出来后,页面元素被顶上去一部分,fixed定位的footer也跑到了上面去.解决方法 $("input").focus(function() ...
- Centos610无桌面安装VSFTP
1.检查可以安装的VSFTP版本 yum search vsftp 2.开始安装VSFTP yum install -y vsftpd 3.配置说明 cd /etc/vsftpd vsftpd.con ...
- 排序算法之选择排序的python实现
选择排序算法的工作原理如下: 1. 首先在序列中找到最小或最大元素,存放到排序序列的前或后. 2. 然后,再从剩余元素中继续寻找最小或最大元素. 3. 然后放到已排序序列的末尾. 4. 以此类推,直到 ...
- Linux 笔记:路径
路径 pwd:查看当前路径 cd xxx:进入指定路径 路径中的一些特殊代表符号: .:当前路径 ..:上一级路径 -:上次访问的路径 /:根路径 ~:当前用户的主目录路径
- 不是充许的静态以太网地址,它与vmware保留的mac地址冲突
不是充许的静态以太网地址,它与vmware保留的mac地址冲突 只需修改vxm文件即可. 第一部,打开vmw的镜像位置,如图. 点击后,打开硬盘,如下 把这个vmx结尾的文件下载,在本地编辑,可用tx ...