【PAT乙级】1085 PAT单位排行 (25 分)
25 PAT 单位 乙级 排行
2023-09-11 14:15:52 时间
#include<bits/stdc++.h>
using namespace std;
int n,score;
string id,name;
struct node{int a,b,t,cnt,sum; string name;}temp;
map<string,node>mp;
vector<node>ve;
bool cmp(node a,node b)
{
if(a.sum==b.sum)
{
if(a.cnt==b.cnt) return a.name<b.name;
return a.cnt<b.cnt;
}
return a.sum>b.sum;
}
int main(void)
{
cin>>n;
while(n--)
{
cin>>id>>score>>name;
for(int i=0;i<name.size();i++) name[i]=tolower(name[i]);
if(id[0]=='A') mp[name].a+=score;
else if(id[0]=='B') mp[name].b+=score;
else if(id[0]=='T') mp[name].t+=score;
mp[name].cnt++;
}
for(auto i=mp.begin();i!=mp.end();i++)
{
i->second.sum=i->second.a+i->second.b/1.5+i->second.t*1.5;
i->second.name=i->first;
ve.push_back(i->second);
}
sort(ve.begin(),ve.end(),cmp);
cout<<ve.size()<<endl;
int k=1;
for(int i=0;i<ve.size();i++)
{
printf("%d %s %d %d",k,ve[i].name.c_str(),ve[i].sum,ve[i].cnt);
if(i+1<ve.size()&&ve[i].sum!=ve[i+1].sum) k=i+2;
if(i!=ve.size()-1) cout<<endl;
}
return 0;
}
相关文章
- 1062. Talent and Virtue (25)【排序】——PAT (Advanced Level) Practise
- LeetCode 21-25 题 详解 Java版 ( 万字 图文详解 LeetCode 算法题21-25 =====>>> <建议收藏>)
- 1093 Count PAT‘s (25 分)【难度: 一般 / 知识点: 前缀和 组合数】
- 1082 Read Number in Chinese (25 分)【难 / 模拟 字符串】
- 1153 Decode Registration Card of PAT (25 分)【难度: 一般 / 知识点: 排序 模拟】
- 1142 Maximal Clique (25 分)【难度: 一般 / 知识点: 模拟】
- 1117 Eddington Number (25 分)【难度: 一般 / 知识点: 二分】
- 1002 A+B for Polynomials (25 分)【难度: 一般 / 知识点: 模拟】
- 【PAT乙级】1050 螺旋矩阵 (25 分)
- 【PAT乙级】1080 MOOC期终成绩 (25 分)
- 你值得拥有 —— 25 个 Linux 性能监控工具
- 阿里云服务器 发送邮箱 STMP 25端口 465端口问题 Javamail 25被禁用
- PAT 1017 Queueing at Bank (25) (坑题)
- 2017第25周日
- 2017第25周六
- 2016第25周一
- 程序员应知必会的思维模型之 25 普特定律 (Putt‘s Law)
- 【历史上的今天】3 月 25 日:Ada 语言之父诞生;第一个维基站点问世;TechTV 被收购
- 1040 有几个PAT (25 分)C语言
- 标准C程序设计七---25