HDU5131(模拟)
来源:互联网 发布:淘宝上下架工具 编辑:程序博客网 时间:2024/06/05 10:07
题目大意:给出n个人的姓名,以及杀敌数量,按照杀敌数从高到低排序,数量相同的按照姓名字典序排列。再给出m个查询,输出对应人物的比他杀敌数多的人数+1,和他并列多的人数+1,如果无并列的,第二项不输出。
思路:数据量很小,直接模拟。
#include <cstdio>#include <algorithm>#include <cstring>#include <string>#include <iostream>#include <cmath>using namespace std;const int maxn = 222;struct node{ string name; int kill; int id; int fuck; bool operator < (const node &a)const { if(kill == a.kill) return name < a.name; return kill > a.kill; }}p[maxn];int main(){ int n, m; string str; while(scanf("%d", &n) && n) { for(int i = 0; i < n; i++) { cin >> p[i].name >> p[i].kill; } sort(p, p+n); for(int i = 0; i < n; i++) { cout << p[i].name << " " << p[i].kill << endl; p[i].id = i+1; if(i == 0) { p[i].fuck = 1; } else if(i != 0) { if(p[i].kill != p[i-1].kill) { p[i].fuck = i+1; } else { p[i].fuck = p[i-1].fuck; } } } scanf("%d", &m); while(m--) { cin >> str; int a, b; for(int i = 0; i < n; i++) { if(str == p[i].name) { a = p[i].id-(p[i].id-p[i].fuck); b = p[i].id-p[i].fuck+1; if(b == 1) { printf("%d\n", a); } else if(b != 1) { printf("%d %d\n", a, b); } } } } } return 0;}
0 0
- HDU5131(模拟)
- hdu5131
- HDU5131 Song Jiang's rank list(模拟)
- HDU5131-暴力&读题-Song Jiang's rank list
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟
- 模拟:
- 模拟
- 模拟
- 模拟
- 模拟
- 第2周项目2-就拿胖子说事
- linux添加系统调用总结(内核版本4.4.4)
- Python爬虫学习笔记(2)-单线程爬虫
- 【spark】采用LogisticRegression(ML API篇)对MNIST的0-1数字进行识别
- JavaScript 原型概念深入理解
- HDU5131(模拟)
- hdu5222(拓扑排序+并查集)
- Debian下iceweasel(FireFox)缓存目录下的视频文件
- Python爬虫学习笔记(3)-XPath与多线程爬虫
- bzoj 3625 小朋友和二叉树 多项式开根
- UI学习第09天
- POJ 2362 Square (搜索 + 剪枝)
- uboot中常见烧写命令总结
- Java中的stringbuffer和String类: