1095 解码PAT准考证 (25 分)

PAT 乙级 知识点汇总 (持续更新) 文章目录1.未知循环次数2.字符串与数字相互转换第一种:sscanf()和sprintf():第二种:str1[i]-'0'ASCII码表:3.整型数中查找数字个数组成的新数4.字符串长度,与数字一起输入(输入带空格)5.整数相除的四舍五入,保留小数点 1.未知循环次数 参考1016 部分A+B(15 分): 用while(a!=0) 2.字符串与数字相互转换 第一种:sscanf()和sprintf(): (1)sscanf(str,"%d",&n):将str字符串以%d的格式传给n 阅读详情

PAT 准考证号由 4 部分组成:

  • 第 1 位是级别,即 T 代表顶级;A 代表甲级;B 代表乙级;
  • 第 2~4 位是考场编号,范围从 101 到 999;
  • 第 5~10 位是考试日期,格式为年、月、日顺次各占 2 位;
  • 最后 11~13 位是考生编号,范围从 000 到 999。

现给定一系列考生的准考证号和他们的成绩,请你按照要求输出各种统计信息。

输入格式:

输入首先在一行中给出两个正整数 N(≤10​4​​)和 M(≤100),分别为考生人数和统计要求的个数。

接下来 N 行,每行给出一个考生的准考证号和其分数(在区间 [0,100] 内的整数),其间以空格分隔。

考生信息之后,再给出 M 行,每行给出一个统计要求,格式为:类型 指令,其中

  • 类型 为 1 表示要求按分数非升序输出某个指定级别的考生的成绩,对应的 指令 则给出代表指定级别的字母;
  • 类型 为 2 表示要求将某指定考场的考生人数和总分统计输出,对应的 指令 则给出指定考场的编号;
  • 类型 为 3 表示要求将某指定日期的考生人数分考场统计输出,对应的 指令 则给出指定日期,格式与准考证上日期相同。

输出格式:

对每项统计要求,首先在一行中输出 Case #: 要求,其中 # 是该项要求的编号,从 1 开始;要求 即复制输入给出的要求。随后输出相应的统计结果:

  • 类型 为 1 的指令,输出格式与输入的考生信息格式相同,即 准考证号 成绩。对于分数并列的考生,按其准考证号的字典序递增输出(题目保证无重复准考证号);
  • 类型 为 2 的指令,按 人数 总分 的格式输出;
  • 类型 为 3 的指令,输出按人数非递增顺序,格式为 考场编号 总人数。若人数并列则按考场编号递增顺序输出。

如果查询结果为空,则输出 NA。

输入样例:

8 4
B123180908127 99
B102180908003 86
A112180318002 98
T107150310127 62
A107180908108 100
T123180908010 78
B112160918035 88
A107180908021 98
1 A
2 107
3 180908
2 999

输出样例:

Case 1: 1 A
A107180908108 100
A107180908021 98
A112180318002 98
Case 2: 2 107
3 260
Case 3: 3 180908
107 2
123 2
102 1
Case 4: 2 999
NA
#include<bits/stdc++.h>
using namespace std;
struct node{
	string id;
	int mark;
};
struct node1{
	int kao;
	int cou=0;
};
bool cmp1(node a,node b){
	if(a.mark==b.mark)return a.id<b.id;
	else return a.mark>b.mark;
}
bool cmp2(node1 a,node1 b){
	if(a.cou==b.cou)return a.kao<b.kao;
	else return a.cou>b.cou;
}
int main() {
	int m,n,temp;
	string s;
	scanf("%d%d",&n,&m);
	unordered_map<string,vector<node>>m1;
	unordered_map<string,vector<node>>m2;
	unordered_map<string,vector<node>>m3;
	node no;
	for(int i=0;i<n;i++){
		cin>>no.id>>no.mark;
		m1[no.id.substr(0,1)].push_back(no);
		m2[no.id.substr(1,3)].push_back(no);
		m3[no.id.substr(4,6)].push_back(no);
	}
	for(int i=0;i<m;i++){
		cin>>temp>>s;
		if(temp==1){
			printf("Case %d: 1 %s\n",i+1,s.c_str());
			//cout<<"Case "<<i+1<<": 1 "<<s<<endl;
			if(m1[s].size()==0)cout<<"NA\n";
			else{
				sort(m1[s].begin(),m1[s].end(),cmp1);
				for(int j=0;j<m1[s].size();j++){
					printf("%s %d\n",m1[s][j].id.c_str(),m1[s][j].mark);
					//cout<<m1[s][j].id<<" "<<m1[s][j].mark<<endl;
				}
			}
		}else if(temp==2){
			printf("Case %d: 2 %s\n",i+1,s.c_str());
			//cout<<"Case "<<i+1<<": 2 "<<s<<endl;
			if(m2[s].size()==0)cout<<"NA\n";
			else{
				int sum=0;
				for(int j=0;j<m2[s].size();j++){
					sum+=m2[s][j].mark;
				}
				cout<<m2[s].size()<<" "<<sum<<endl;
			}
		}else{
			printf("Case %d: 3 %s\n",i+1,s.c_str());
			//cout<<"Case "<<i+1<<": 3 "<<s<<endl;
			if(m3[s].size()==0)cout<<"NA\n";
			else{
				vector<node1>v1;
				vector<int>v2(1000,0);
				node1 n1;
				for(int j=0;j<m3[s].size();j++){
					v2[stoi(m3[s][j].id.substr(1,3))]++;
				}
				for(int j=0;j<v2.size();j++){
					if(v2[j]>0){
						n1.kao = j;
						n1.cou=v2[j];
						v1.push_back(n1);
					}
				}
				sort(v1.begin(),v1.end(),cmp2);
				for(int j=0;j<v1.size();j++){
					printf("%d %d\n",v1[j].kao,v1[j].cou);
					//cout<<v1[j].kao<<" "<<v1[j].cou<<endl;
				} 
			}
		}
	}
}

 

Microapp 接入vite子应用 MicroApp接入vite版本,干货满满,手把手步骤说明,加上报错说明,赶紧上车! 阅读详情

相关推荐

【问题解析】Matlab Function的易错点(Variable Size)

Matlab Function的易错点

CrazyRabbit的博客 9866

PAT乙级题目索引(题目+解析+AC代码)

题目信息 分值 PAT 乙级 1001 害死人不偿命的(3n+1)猜想 15 PAT 乙级 1002 写出这个数 20 PAT 乙级 1003 我要通过! 20 PAT 乙级 1004 成绩排名 20 PAT 乙级 1005继续(3n+1)猜想 25 PAT 乙级 1006 换个格式输出整数 15 PAT 乙级 1007 素数...

漫浸天空的雨色的备忘录~ 3万+

从零开始学习CANoe(三)—— 系统变量的创建和使用

从零开始学习CANoe(三)—— 系统变量的创建和使用

蚂蚁小兵 1万+

真实的PAT乙级真题及思路详解(大部分对,非全满分,不断更新,不断思索更好的办法)

1001.害死人不偿命的(3n+1)猜想

weixin_38560644的博客 6828

AUTOSAR&UDS 理论要点及isolar实战-DEM模块

从这节开始,将讲解UDS诊断中非常重要的知识点:故障事件触发、故障信息上报、故障信息处理、故障信息存储和故障系统降级,后续会陆续更新。

cqaa11的博客 552

华为od 面试八股文_JAVA语言_01_含答案

华为od 面试八股文_JAVA语言_01_含答案

MISAYAONE的博客 4311

PAT-2021年春季乙级考试题解

7-1 打印三角形拼图 (15 分) 一个正方形可以用两个等边直角三角形拼出来。给定正方形的边长、两个三角形和对角线所用的符号,请你打印出这两个三角形拼出的正方形。 输入格式: 输入在一行中给出一个正整数 L(2≤L≤100,为正方形的边长),同时给出打印上三角形、下三角形、对角线所用的字符。数字和字符间以一个空格分隔。 输出格式: 按输入要求打印这两个三角形拼出的正方形。 输入样例: 6 a b - 输出样例: -aaaaa b-aaaa bb-aaa bbb-aa bbbb-a bbbbb- 解

ヾ(≧▽≦*)o 3477

AI翻译工具自动翻译日语视频生成srt中文字幕,支持离线轻松生成任意日语视频字幕!可选择支持显卡模式和cpu模式低显存也能用

【AI离线字幕神器:日语视频一键转中文字幕】推荐一款基于Faster-Whisper的本地化字幕工具,可离线生成日语视频的中文字幕(.srt格式),支持CPU/GPU加速处理。实测1小时视频最快4-5分钟完成翻译,无需联网保护隐私。操作简单只需拖拽文件,支持批量处理音频(mp3/wav)和视频(mp4/mkv)文件,还能自定义输出格式和参数调整。特别适合需要观看无字幕日语资料的用户,堪称技术宅必备神器。下载地址附后,包含详细使用教程和参数配置说明。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

PAT(乙级)2022年冬季考试

此前先后花了十元去做了乙级题,从最开始分别是70,35,43,33(途中做了RobpCom,只搞定了签到题),想着报今年的冬季赛,但是报名费有点高啊,加上做下来感觉不怎么样,后面在比赛结束后也是抽了3个小时去感受一下,满分是没想到的,不过可能因为考试环境比较轻松吧,下面为大家解析本人通关代码。

m0_51863774的博客 1521

3.2 直流无刷电机(BLDC):状态空间模型与传递函数

状态空间模型和传递函数是分析BLDC电机动态特性的重要工具。状态空间模型通过微分方程描述系统内部状态与输入输出关系,适用于多变量系统分析;传递函数则在频域表征系统特性,便于控制器设计。本文详细推导了三相坐标系和dq坐标系下的BLDC电机状态空间模型,讨论了线性化方法,并介绍了从状态空间模型到传递函数的转换过程。这些模型为BLDC电机的控制系统设计提供了理论基础。

技术工作者 245

EuROC 数据集格式及相关代码

Euroc提供ROS和zip两种数据格式。

~勿据散客~的博客 2093

1095 解码PAT准考证 (25 分)

铤而走险,卡超时200ms我用了197.。。。 1095解码PAT准考证(25分) PAT 准考证号由 4 部分组成: 第 1 位是级别,即T代表顶级;A代表甲级;B代表乙级; 第 2~4 位是考场编号,范围从 101 到 999; 第 5~10 位是考试日期,格式为年、月、日顺次各占 2 位; 最后 11~13 位是考生编号,范围从 000 到 999。 现给定一系...

韩旭051的博客 1951

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

1095 解码PAT准考证 (25分)

1095 解码PAT准考证 (25分) PAT 准考证号由 4 部分组成: 第 1 位是级别,即 T 代表顶级;A 代表甲级;B 代表乙级; 第 2~4 位是考场编号,范围从 101 到 999; 第 5~10 位是考试日期,格式为年、月、日顺次各占 2 位; 最后 11~13 位是考生编号,范围从 000 到 999。 现给定一系列考生的准考证号和他们的成绩,请你按照要求输出各种统计信息。 ...

peanWang的博客 536

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

1095 解码PAT准考证 (25分)

1095解码PAT准考证(25分) PAT 准考证号由 4 部分组成: 第 1 位是级别,即T代表顶级;A代表甲级;B代表乙级; 第 2~4 位是考场编号,范围从 101 到 999; 第 5~10 位是考试日期,格式为年、月、日顺次各占 2 位; 最后 11~13 位是考生编号,范围从 000 到 999。 现给定一系列考生的准考证号和他们的成绩,请你按照要求输出各种统计信...

路途遥远,初心难忘,道阻且长,愿君走出半生,归来仍是少年 308

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【精简版】1095解码PAT准考证 (25 分)

1095解码PAT准考证(25分) PAT 准考证号由 4 部分组成: 第 1 位是级别,即T代表顶级;A代表甲级;B代表乙级; 第 2~4 位是考场编号,范围从 101 到 999; 第 5~10 位是考试日期,格式为年、月、日顺次各占 2 位; 最后 11~13 位是考生编号,范围从 000 到 999。 现给定一系列考生的准考证号和他们的成绩,请你按照要求输出各种统...

tqlwsl的博客 234

1095 解码PAT准考证 (25 分)

PAT 准考证号由 4 部分组成: 第 1 位是级别,即 T 代表顶级;A 代表甲级;B 代表乙级; 第 2~4 位是考场编号,范围从 101 到 999; 第 5~10 位是考试日期,格式为年、月、日顺次各占 2 位; 最后 11~13 位是考生编号,范围从 000 到 999。 现给定一系列考生的准考证号和他们的成绩,请你按照要求输出各种统计信息。 输入格式: 输入首先在一行中给出...

acm_zh的博客 1366

PAT 1095 解码PAT准考证 (25 分)

PAT 准考证号由 4 部分组成: 第 1 位是级别,即 T 代表顶级;A 代表甲级;B 代表乙级; 第 2~4 位是考场编号,范围从 101 到 999; 第 5~10 位是考试日期,格式为年、月、日顺次各占 2 位; 最后 11~13 位是考生编号,范围从 000 到 999。 现给定一系列考生的准考证号和他们的成绩,请你按照要求输出各种统计信息。 输入格式: 输入首先在一行中给出两个正整数 ...

(ง •_•)ง没有困难的工作,只有勇敢的狗狗 150
上一篇: 1094 谷歌的招聘 (20 分)
下一篇: 1001 A+B Format (20分) 题解,易错点分析
Linuxsen
博客等级 码龄9年 4粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值