当前位置:网站首页>Pat class A - 1012 the best rank (PIT)
Pat class A - 1012 the best rank (PIT)
2022-06-23 01:21:00 【S atur】
The question : Each student has his own serial number id, as well as C Language scene c, Math scores m, English scores e, And the average a. The title will output n Of a student id And three major subjects , Climate tracking m Time to ask , Ask someone id Students' best grades ranking and subject name .
Ideas : The idea is very simple , Divide into four arrays to store the scores of all students in each subject, and then arrange them in order . But two pits need to be noticed :1. The highest ranking of students must be selected according to a,c,m,e The priority of is the highest ranked account ( That is, each score is ranked third , But you must output 3 A).2. The same scores rank the same , But the next score will not be added up ( That is to say, now there is 90、90、89 Three achievements , The ranking of Qi is 1、1、3).
AC Code :
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
const int N = 1e5+10;
int n, m;
struct node{
int c, m, e, a;
};
map<string, node> mp;
vector<node> cc, mm, ee, aa;
map<int, int> gc, gm, ge, ga;
map<string, int> vis;
bool cmpc(node x, node y){
return x.c>y.c;
}
bool cmpm(node x, node y){
return x.m>y.m;
}
bool cmpe(node x, node y){
return x.e>y.e;
}
bool cmpa(node x, node y){
return x.a>y.a;
}
signed main()
{
cin >> n >> m;
for(int i = 1; i <= n; i ++){
string s; int x, y, z;
cin >> s >> x >> y >> z;
vis[s] = 1;
node tmp = {x, y, z, (x+y+z)/3};
mp[s] = tmp;
cc.push_back(tmp);
mm.push_back(tmp);
ee.push_back(tmp);
aa.push_back(tmp);
}
sort(cc.begin(), cc.end(), cmpc);
sort(mm.begin(), mm.end(), cmpm);
sort(ee.begin(), ee.end(), cmpe);
sort(aa.begin(), aa.end(), cmpa);
for(int i = 0; i < cc.size(); i ++){
if(!gc[cc[i].c]) gc[cc[i].c] = i+1;
}
for(int i = 0; i < mm.size(); i ++){
if(!gm[mm[i].m]) gm[mm[i].m] = i+1;
}
for(int i = 0; i < ee.size(); i ++){
if(!ge[ee[i].e]) ge[ee[i].e] = i+1;
}
for(int i = 0; i < aa.size(); i ++){
if(!ga[aa[i].a]) ga[aa[i].a] = i+1;
}
while(m--){
string s;
cin >> s;
if(!vis[s]){
cout << "N/A" << endl;
continue;
}
int pc = gc[mp[s].c], pm = gm[mp[s].m], pe = ge[mp[s].e], pa = ga[mp[s].a];
if(pa<=pc&&pa<=pm&&pa<=pe) cout << pa << " A" << endl;
else if(pc<=pm&&pc<=pe&&pc<=pa) cout << pc << " C" << endl;
else if(pm<=pc&&pm<=pe&&pm<=pa) cout << pm << " M" << endl;
else if(pe<=pc&&pe<=pm&&pe<=pa) cout << pe << " E" << endl;
// cout << mp[s].c << " " << mp[s].m << " " << mp[s].e << " " << mp[s].a << endl;
// cout << pc << " " << pm << " " << pe << " " << pa << endl << endl;
}
return 0;
}
边栏推荐
- Installing MySQL for Linux
- Webdriver and selenium Usage Summary
- Project directory navigation
- LeetCode刷题——715. Range 模块
- Similar to attention NLP
- Overview of visual object detection technology based on deep learning
- Add / get and delete cookies
- 07 project cost management
- "Hearing" marketing value highlights, Himalaya ushers in a new situation
- Get the direction of mouse movement
猜你喜欢

SAP ui5 application development tutorial 103 - how to consume the trial version of the third-party library in SAP ui5 applications

Tidb monitoring upgrade: a long way to solve panic

SAP ui5 application development tutorial 102 - detailed explanation of the print function of SAP ui5 applications

How to refine permissions to buttons?
![[machine learning watermelon book] update challenge [Day1]: 1.1 INTRODUCTION](/img/f6/b0df192502a59a32d8bac8c0862d02.png)
[machine learning watermelon book] update challenge [Day1]: 1.1 INTRODUCTION

Figure what are the uses and applications of neural networks?

Explain the startup process of opengauss multithreading architecture in detail
3 big questions! Redis cache exceptions and handling scheme summary

A hundred lines of code to realize reliable delay queue based on redis

cadence SPB17.4 - allegro - 優化指定單條電氣線折線連接角度 - 折線轉圓弧
随机推荐
SAP mm transaction code vl04 create outbound delivery for sto
C#.NET万能数据库访问封装类(ACCESS、SQLServer、Oracle)
Hierarchy selector
使用aggregation API扩展你的kubernetes API
Ros2 summer school 2022 transfer-
Is it safe for CICC securities to open an account? What is its relationship with CICC?
黄金etf持仓量如何算
Node fetch download file
LeetCode刷题——715. Range 模块
崔鹏团队:万字长文梳理「稳定学习」全景图
Have you stepped on these pits? Use caution when creating indexes on time type columns
How to calculate the position of gold ETF
Shell 日志与打印输出
Vector 3 (static member)
SAP ui5 application development tutorial 103 - how to consume third-party libraries in SAP ui5 applications
Is it safe for Hongyuan futures to open an account? Can Hongyuan futures company reduce the handling fee?
SwiftUI Swift 教程之 14 个有用的数组运算符
62. 不同路径
Population standard deviation and sample standard deviation
打新债开户安全么,怎么开