PAT 甲级 1141 PAT Ranking of Institutions
https://pintia.cn/problem-sets/994805342720868352/problems/994805344222429184
After each PAT, the PAT Center will announce the ranking of institutions based on their students' performances. Now you are asked to generate the ranklist.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N (≤), which is the number of testees. Then N lines follow, each gives the information of a testee in the following format:
ID Score School
where ID is a string of 6 characters with the first one representing the test level: B stands for the basic level, A the advanced level and T the top level; Scoreis an integer in [0, 100]; and School is the institution code which is a string of no more than 6 English letters (case insensitive). Note: it is guaranteed that ID is unique for each testee.
Output Specification:
For each case, first print in a line the total number of institutions. Then output the ranklist of institutions in nondecreasing order of their ranks in the following format:
Rank School TWS Ns
where Rank is the rank (start from 1) of the institution; School is the institution code (all in lower case); ; TWS is the total weighted score which is defined to be the integer part of ScoreB/1.5 + ScoreA + ScoreT*1.5, where ScoreX is the total score of the testees belong to this institution on level X; and Ns is the total number of testees who belong to this institution.
The institutions are ranked according to their TWS. If there is a tie, the institutions are supposed to have the same rank, and they shall be printed in ascending order of Ns. If there is still a tie, they shall be printed in alphabetical order of their codes.
Sample Input:
10
A57908 85 Au
B57908 54 LanX
A37487 60 au
T28374 67 CMU
T32486 24 hypu
A66734 92 cmu
B76378 71 AU
A47780 45 lanx
A72809 100 pku
A03274 45 hypu
Sample Output:
5
1 cmu 192 2
1 au 192 3
3 pku 100 1
4 hypu 81 2
4 lanx 81 2
代码:
#include <bits/stdc++.h>
using namespace std; const int maxn = 1e5 + 10;
int N;
map<string, int> mp; string lowercase(string c) {
string ans = "";
int len = c.length();
for(int i = 0; i < len; i ++) {
if(c[i] >= 'A' && c[i] <= 'Z')
ans += (c[i] + 32);
else ans += c[i];
}
return ans;
} struct Node{
int st;
int num;
double score = 0;
string name;
}node[maxn]; bool cmp(const Node &a, const Node &b) {
if((int)a.score != (int)b.score)
return (int)a.score > (int)b.score;
else if((int)a.score == (int)b.score) {
if(a.num != b.num)
return a.num < b.num;
else return a.name < b.name;
}
} int main() {
scanf("%d", &N);
mp.clear();
int cnt = 0;
while(N --) {
char s[10]; int x; string namee;
scanf("%s%d", s, &x);
cin >> namee; namee = lowercase(namee);
if(mp[namee] == 0) {
cnt ++;
mp[namee] = cnt;
} node[mp[namee]].num ++;
node[mp[namee]].name = namee;
if(s[0] == 'B') node[mp[namee]].score += (2.0 * x / 3);
else if(s[0] == 'A') node[mp[namee]].score += 1.0 * x;
else if(s[0] == 'T') node[mp[namee]].score += (3.0 * x / 2);
} sort(node + 1, node + 1 + cnt, cmp); cout << cnt << endl; node[1].st = 1;
cout << node[1].st << " " << node[1].name << " " << (int)node[1].score << " " << node[1].num << endl;
for(int i = 2; i <= cnt; i ++) {
if((int)node[i].score == (int)node[i - 1].score)
node[i].st = node[i - 1].st;
else node[i].st = i; cout << node[i].st << " " << node[i].name << " " << (int)node[i].score << " " << node[i].num << endl;
}
return 0;
}
第一次交最后一个测试点没过 要用 double 算 score 然后强制类型转换 (int)
FHFHFH
PAT 甲级 1141 PAT Ranking of Institutions的更多相关文章
- PAT甲级1141 Ranking of Institutions
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805344222429184 题意: 给定几个学生的PAT分数和学校 ...
- PAT 甲级 1025 PAT Ranking
1025. PAT Ranking (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Programmi ...
- PAT甲级——1025 PAT Ranking
1025 PAT Ranking Programming Ability Test (PAT) is organized by the College of Computer Science and ...
- PAT 甲级 1025.PAT Ranking C++/Java
Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Z ...
- PAT 甲级1025 PAT Ranking (25 分)(结构体排序,第一次超时了,一次sort即可小技巧优化)
题意: 给定一次PAT测试的成绩,要求输出考生的编号,总排名,考场编号以及考场排名. 分析: 题意很简单嘛,一开始上来就,一组组输入,一组组排序并记录组内排名,然后再来个总排序并算总排名,结果发现最后 ...
- PAT甲级——A1025 PAT Ranking
Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhe ...
- PAT甲级1075 PAT Judge
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805393241260032 题意: 有m次OJ提交记录,总共有k道 ...
- PAT 甲级 1075 PAT Judge (25分)(较简单,注意细节)
1075 PAT Judge (25分) The ranklist of PAT is generated from the status list, which shows the scores ...
- PAT甲级——A1075 PAT Judge
The ranklist of PAT is generated from the status list, which shows the scores of the submissions. Th ...
随机推荐
- WPF 绑定StaticResource到控件的方法
原文:WPF 绑定StaticResource到控件的方法 资源文件内的属性能否直接通过绑定应用到控件?答案是肯定的. 比如,我们要直接把下面的<SolidColorBrush x:Key=&q ...
- c++MFC工程修改在共享DLL中使用MFC为使用标准Windows库的解决办法
由于创建MFC工程时,默认是在共享DLL中使用MFC,如果将此选项改成使用标准Windows库,会报如下错误 c:\program files\microsoft visual studio 9.0\ ...
- JAVA Swing开发单机版项目
一.序 最近公司做的项目里出现了一个新的需求,项目大部分是为金融业定制开发的数据集成平台,包括数据的采集,处理,使用. 数据的采集方式不固定,有机构化数据,有非结构话数据,还有附件等其它文件形式. 对 ...
- 04 - django的路由层 1
1.路由控制简单配置 from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles/2003 ...
- CF 1110 D. Jongmah
D. Jongmah 链接 题意: 一些数字,有两种方式组成一个三元组,[x,x,x],[x,x+1,x+2],每个数字只能用一次,求最多组成多少三元组. 分析: 因为每三个[x,x+1,x+2]是可 ...
- Mac下 Windows 7 虚拟机搭建SVN服务器的详细步骤(此方法同样适用于单纯的Windows系统搭建SVN)
内容中包含 base64string 图片造成字符过多,拒绝显示
- [TJOI2013]拯救小矮人[排序+dp]
题意 题目链接 分析 Imagine的完美回答 重点大概是证明我们选出要救的小矮人一定可以根据 \(a_i+b_i\) 的大小进行排序救出. 注意这里关注的对象是可以保留的高度,所以我们的dp值才会表 ...
- tikz中谐振子(弹簧)的绘制,以及声子色散关系的绘制
今天整理了简正模导出声子的内容,其中用tikz画了两张图.一张是整个问题的物理模型,效果如下 这幅图的绘制参考了https://tex.stackexchange.com/questions/4160 ...
- 180804-Spring之动态注册bean
Spring之动态注册bean 什么场景下,需要主动向Spring容器注册bean呢? 如我之前做个的一个支持扫表的基础平台,使用者只需要添加基础配置 + Groovy任务,就可以丢到这个平台上面来运 ...
- oozie捕获标准输出&异常capture-output
对于普通的java-action或者shell-action 都是支持的只要标准输出是"k1=v1"这中格式的就行: 现用test.py进行测试: ##test.py #! /op ...