当前位置:网站首页>Pat grade a 1153 decode registration card of PAT (25 points)
Pat grade a 1153 decode registration card of PAT (25 points)
2022-07-25 15:33:00 【nekoha_ dexter】
1153 Decode Registration Card of PAT (25 branch )
A registration card number of PAT consists of 4 parts:
- the 1st letter represents the test level, namely, T for the top level, A for advance and B for basic;
- the 2nd - 4th digits are the test site number, ranged from 101 to 999;
- the 5th - 10th digits give the test date, in the form of yymmdd;
- finally the 11th - 13th digits are the testee's number, ranged from 000 to 999.
Now given a set of registration card numbers and the scores of the card owners, you are supposed to output the various statistics according to the given queries.
Input Specification:
Each input file contains one test case. For each case, the first line gives two positive integers N (≤104) and M (≤100), the numbers of cards and the queries, respectively.
Then N lines follow, each gives a card number and the owner's score (integer in [0,100]), separated by a space.
After the info of testees, there are M lines, each gives a query in the format Type Term, where
- Type being 1 means to output all the testees on a given level, in non-increasing order of their scores. The corresponding Term will be the letter which specifies the level;
- Type being 2 means to output the total number of testees together with their total scores in a given site. The corresponding Term will then be the site number;
- Type being 3 means to output the total number of testees of every site for a given test date. The corresponding Term will then be the date, given in the same format as in the registration card.
Output Specification:
For each query, first print in a line Case #: input, where # is the index of the query case, starting from 1; and input is a copy of the corresponding input query. Then output as requested:
- for a type 1 query, the output format is the same as in input, that is, CardNumber Score. If there is a tie of the scores, output in increasing alphabetical order of their card numbers (uniqueness of the card numbers is guaranteed);
- for a type 2 query, output in the format Nt Ns where Nt is the total number of testees and Ns is their total score;
- for a type 3 query, output in the format Site Nt where Site is the site number and Nt is the total number of testees at Site. The output must be in non-increasing order of Nt's, or in increasing order of site numbers if there is a tie of Nt.
If the result of a query is empty, simply print NA.
Sample Input:
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
Sample Output:
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
The main idea of the topic :
give n A record and m Queries . Each record has one exam type ,3 Classroom with seats ,6 Date of bit ,3 Candidates id. The query consists of two parts , Part of it is type, Part is the content , If type == 1, It is required to output id And fractions , Rank the scores from big to small , If the scores are the same, let id In front of the small row .
If type == 2, Output the number of students in the designated classroom and the total score . If type == 3 Then output the given date , According to the number of people, from big to small , If the number of people has been , Small classroom number is preferred .
Ideas :
Observe their ranking requirements , except 2 outside , The sorting method is to have a total score first ,id And then .
use map<string, int> To deal with the third situation .
Reference code :
#include<unordered_map>
#include<algorithm>
#include<vector>
#include<iostream>
using namespace std;
struct node{
string id;
int v;
};
vector<node>list;
int n, m, flag;
string c;
bool cmp(node a, node b){
return a.v != b.v ? a.v > b.v : a.id < b.id;
}
int main(){
scanf("%d%d", &n, &m);
list.resize(n);
for(int i = 0; i < n; ++i) cin >> list[i].id >> list[i].v;
for(int i = 1; i <= m; ++i){
cin >> flag >> c;
printf("Case %d: %d %s\n", i , flag, c.c_str());
vector<node> ans;
int num = 0, total = 0;
if(flag == 1){
for(int j = 0; j < n; ++j)
if(list[j].id[0] == c[0]) ans.push_back(list[j]);
} else if(flag == 2){
for(int j = 0; j < n; ++j)
if(list[j].id.substr(1, 3) == c) num++, total += list[j].v;
if(num != 0) printf("%d %d\n", num, total);
} else {
unordered_map<string, int > mp;
for(int j = 0; j < n; ++j){
string t = list[j].id.substr(4, 6);
if(t == c) mp[list[j].id.substr(1, 3)]++;
}
for(auto it : mp) ans.push_back({it.first, it.second});
}
sort(ans.begin(), ans.end(), cmp);
for(int j = 0; j < ans.size(); ++j)
printf("%s %d\n", ans[j].id.c_str(), ans[j].v);
if(((flag == 1 || flag == 3) && ans.size() == 0) || (flag == 2 && num == 0)) printf("NA\n");
}
}Code reference :https://blog.csdn.net/liuchuo/article/details/84973049
边栏推荐
- Notes on inputview and inputaccessoryview of uitextfield
- 小波变换--dwt2 与wavedec2
- Remember that spark foreachpartition once led to oom
- Pat grade a 1151 LCA in a binary tree (30 points)
- ML - Speech - advanced speech model
- Qtime定义(手工废物利用简单好看)
- matlab 如何保存所有运行后的数据
- In depth: micro and macro tasks
- 4PAM在高斯信道与瑞利信道下的基带仿真系统实验
- MySQL installation and configuration super detailed tutorial and simple database and table building method
猜你喜欢

window系统黑窗口redis报错20Creating Server TCP listening socket *:6379: listen: Unknown error19-07-28

你准备好脱离“内卷化怪圈”了吗?

谷歌云盘如何关联Google Colab

ML - 语音 - 传统语音模型

Idea remotely submits spark tasks to the yarn cluster

Get the ask code corresponding to the key pressed by the keyboard

分布式原理 - 什么是分布式系统

Pytorch学习笔记--SEResNet50搭建

Spark memory management mechanism new version

Run redis on docker to start in the form of configuration file, and the connection client reports an error: server closed the connection
随机推荐
分布式 | 实战:将业务从 MyCAT 平滑迁移到 dble
MATLAB读取显示图像时数据格式转换原因
MySQL优化总结二
MySQL heap table_ MySQL memory table heap Usage Summary - Ninth Five Year Plan small pang
window系统黑窗口redis报错20Creating Server TCP listening socket *:6379: listen: Unknown error19-07-28
Pytorch学习笔记-Advanced_CNN(Using Inception_Module)实现Mnist数据集分类-(注释及结果)
SQL cultivation manual from scratch - practical part
Phased summary of the research and development of the "library management system -" borrowing and returning "module
How to understand the maximum allowable number of errors per client connection of MySQL parameters in Seata?
ML - natural language processing - Basics
Take you to learn more about JS basic grammar (recommended Collection)
CF365-E - Mishka and Divisors,数论+dp
Box avoiding mouse
PAT甲级1152 Google Recruitment (20 分)
Games101 review: linear algebra
C#精挑整理知识要点11 委托和事件(建议收藏)
See a lot of blinking pictures on apps, especially the member page
ML - 语音 - 传统语音模型
matlab--CVX优化工具包安装
BPSK调制系统MATLAB仿真实现(1)