博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 5131 Song Jiang's rank list
阅读量:2125 次
发布时间:2019-04-30

本文共 1305 字,大约阅读时间需要 4 分钟。

题意

给N个人的成绩,先按成绩排名输出,然后按照给定名字顺序输出对应的排名,和与他成绩相同且名字的字典序小的数量(如果为1则不输出)

AC

#include 
#include
#include
#include
#include
#include
#define mem(a, b) memset(a, b, sizeof(a))#define ll long long#define N 100005#define P pair
int inf = 0x3f3f3f3f;using namespace std;struct ac{ string name; int s, sum, rank;}a[N];int sum[N];int main(){ // freopen("in.txt", "r", stdin); int n; while (cin >> n, n){ mem(sum, 0); for (int i = 0; i < n; ++i){ cin >> a[i].name >> a[i].s; a[i].sum = 1; sum[a[i].s]++; } // 按照成绩排序 sort(a, a + n, [&](const ac &a, const ac & b){ if (a.s != b.s){ return a.s > b.s; }else { return a.name < b.name; } }); // 输出 for (int i = 0; i < n; ++i){ a[i].rank = i + 1; cout << a[i].name << " " << a[i].s << endl; } // 求每个人的rank(相同成绩并列排名) for (int i = 1; i < n; ++i) { if (a[i].s == a[i - 1].s) { a[i].rank = a[i - 1].rank; } } for (int i = 0; i < n; ++i){ if (sum[a[i].s] >= 2) { for (int j = 0; j < n; ++j){ if (j == i) continue; if (a[j].s == a[i].s && a[j].name < a[i].name) a[i].sum++; } } } int t; cin >> t; for (int i = 0; i < t; ++i) { string temp; cin >> temp; for (int j = 0; j < n; ++j) { if (a[j].name == temp) { if (a[j].sum > 1) cout << a[j].rank << " " << a[j].sum << endl; else cout << a[j].rank << endl; break; } } } } return 0;}

转载地址:http://azprf.baihongyu.com/

你可能感兴趣的文章
Leetcode C++《热题 Hot 100-51》152. 乘积最大子序列
查看>>
[Kick Start 2020] Round A 1.Allocation
查看>>
Leetcode C++ 《第181场周赛-1》 5364. 按既定顺序创建目标数组
查看>>
Leetcode C++ 《第181场周赛-2》 1390. 四因数
查看>>
阿里云《云原生》公开课笔记 第一章 云原生启蒙
查看>>
阿里云《云原生》公开课笔记 第二章 容器基本概念
查看>>
阿里云《云原生》公开课笔记 第三章 kubernetes核心概念
查看>>
阿里云《云原生》公开课笔记 第四章 理解Pod和容器设计模式
查看>>
阿里云《云原生》公开课笔记 第五章 应用编排与管理
查看>>
阿里云《云原生》公开课笔记 第六章 应用编排与管理:Deployment
查看>>
阿里云《云原生》公开课笔记 第七章 应用编排与管理:Job和DaemonSet
查看>>
阿里云《云原生》公开课笔记 第八章 应用配置管理
查看>>
阿里云《云原生》公开课笔记 第九章 应用存储和持久化数据卷:核心知识
查看>>
linux系统 阿里云源
查看>>
国内外helm源记录
查看>>
牛客网题目1:最大数
查看>>
散落人间知识点记录one
查看>>
Leetcode C++ 随手刷 547.朋友圈
查看>>
手抄笔记:深入理解linux内核-1
查看>>
内存堆与栈
查看>>