hdu 5131 (2014广州现场赛 E题)
题意:对给出的好汉按杀敌数从大到小排序,若相等,按字典序排。M个询问,询问名字输出对应的主排名和次排名。(排序之后)主排名是在该名字前比他杀敌数多的人的个数加1,次排名是该名字前和他杀敌数相等的人的个数加1,(也就是杀敌数相等,但是字典序比他小的人数加1)
Sample Input
5
WuSong 12
LuZhishen 12
SongJiang 13
LuJunyi 1
HuaRong 15
5 //m
WuSong
LuJunyi
LuZhishen
HuaRong
SongJiang
0
Sample Output
HuaRong 15
SongJiang 13
LuZhishen 12
WuSong 12
LuJunyi 1
3 2//主排名 次排名
5
3
1
2
# include <iostream>
# include <cstdio>
# include <cstring>
# include <algorithm>
# include <string>
# include <map>
# include <cmath>
# include <queue>
# include <list>
# define LL long long
using namespace std ; struct ren
{
char name[] ;
int num;
}a[]; bool cmp(ren a,ren b)
{
if(a.num!=b.num)
return a.num > b.num;
return strcmp(a.name,b.name) <;
} map<string,int> mp1 ;
map<string,int> mp2 ; int main()
{
//freopen("in.txt","r",stdin) ;
int n , m ;
while(scanf("%d" , &n) != EOF)
{
if (n == )
break ;
mp1.clear() ;
mp2.clear() ;
int i , j ;
char ch[] ;
for (i = ; i < n ; i++)
scanf("%s %d" , a[i].name , &a[i].num) ;
sort(a , a+n , cmp) ;
int sum = ;
for (i = ; i < n ; i++)
{
printf("%s %d\n" , a[i].name , a[i].num) ;
} for (i = ; i < n ; i++)
{
sum=;
for(j = ; j < i ; j++)
{
if(a[j].num > a[i].num)
sum++;
}
mp1[a[i].name]=sum+;
}
for (i = ; i < n ; i++)
{
sum=;
for(j = ; j < i ; j++)
{
if(a[i].num==a[j].num)
sum++;
}
mp2[a[i].name]=sum+;
}
scanf("%d" , &m) ;
while(m--)
{
scanf("%s" , ch) ;
if (mp2[ch] == )
printf("%d\n" , mp1[ch]) ;
else
printf("%d %d\n" , mp1[ch] , mp2[ch]) ;
}
}
return ;
}
hdu 5131 (2014广州现场赛 E题)的更多相关文章
- hdu 5137 去掉一个点 使得最短路最大(2014广州现场赛 K题)
题意:从2~n-1这几个点中任意去掉一个点,使得从1到n的最短路径最大,如果任意去掉一个点1~n无通路输出Inf. Sample Input4 51 2 31 3 71 4 502 3 43 4 23 ...
- hdu 5071(2014鞍山现场赛B题,大模拟)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5071 思路:模拟题,没啥可说的,移动的时候需要注意top的变化. #include <iostr ...
- hdu 5078 2014鞍山现场赛 水题
http://acm.hdu.edu.cn/showproblem.php?pid=5078 现场最水的一道题 连排序都不用,由于说了ti<ti+1 //#pragma comment(link ...
- hdu 5078(2014鞍山现场赛 I题)
数据 表示每次到达某个位置的坐标和时间 计算出每对相邻点之间转移的速度(两点间距离距离/相隔时间) 输出最大值 Sample Input252 1 9//t x y3 7 25 9 06 6 37 6 ...
- hdu 5112 (2014北京现场赛 A题)
给出某个时刻对应的速度 求出相邻时刻的平均速度 输出最大值 Sample Input23 // n2 2 //t v1 13 430 31 52 0 Sample OutputCase #1: 2.0 ...
- HDU 5218 The E-pang Palace (简单几何—2014广州现场赛)
题目链接:pid=5128">http://acm.hdu.edu.cn/showproblem.php? pid=5128 题面: The E-pang Palace Time Li ...
- hdu 5120(求两个圆环相交的面积 2014北京现场赛 I题)
两个圆环的内外径相同 给出内外径 和 两个圆心 求两个圆环相交的面积 画下图可以知道 就是两个大圆交-2*小圆与大圆交+2小圆交 Sample Input22 30 00 02 30 05 0 Sam ...
- hdu 5122 (2014北京现场赛 K题)
把一个序列按从小到大排序 要执行多少次操作 只需要从右往左统计,并且不断更新最小值,若当前数为最小值,则将最小值更新为当前数,否则sum+1 Sample Input255 4 3 2 155 1 2 ...
- zoj 3820(2014牡丹江现场赛B题)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5374 思路:题目的意思是求树上的两点,使得树上其余的点到其中一个点的 ...
随机推荐
- python 套接字之select poll epoll
python下的select模块使用 以及epoll与select.poll的区别 先说epoll与select.poll的区别(总结) select, poll, epoll 都是I/O多路复用的具 ...
- Java基础-Calendar类常用方法介绍
Java基础-Calendar类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Calendar类概念 Calendar 类是一个抽象类,它为特定瞬间与一组诸如 Y ...
- 最小割 D. Behind the Wall Samara University ACM ICPC 2016-2017 Quarterfinal Qualification Contest
题目链接:http://codeforces.com/gym/101149/problem/D 题目大意: 堡垒受到攻击.堡垒是n*m的矩阵,矩阵里刚开始都是平地,然后那个数值表示在当前平地上建一面墙 ...
- 容器启动报iptables错误
# systemctl stop docker # iptables -t nat -F # ifconfig docker0 down # brctl delbr docker0 # 命令由br ...
- 取消IE下的叉
之前写项目的时候碰到一个小问题,因为IE下的那个叉触发不了我的change事件,所以只好把IE给加上去的那个叉去了,在此记录一下. ::-ms-clear{display:none;} ::-ms-r ...
- nodejs使用记录
安装 下载64or32的安装程序,狂点下一步,无脑安装.然后检查一下: npm 使用npm -v命令检查npm是否可用 然后我们就可以使用npm了,npm语法如下: npm install <M ...
- sublime text3 最常用的快捷键及插件
A:最常用的快捷键 Tab:自动补齐代码 <!--div+Tab 其它标签一样--><div></div> emmet常用的使用方法 <!--ul>li ...
- 学号20155308 2016-2017-2 《Java程序设计》第5周学习总结
学号20155308 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 8.1 语法与继承架构 使用try...catch 注意多个catch一定把父类放后面 ...
- [NOIP2015提高&洛谷P2678]跳石头 题解(二分答案)
[NOIP2015提高&洛谷P2678]跳石头 Description 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之 ...
- HDU 3535 AreYouBusy (混合背包之分组背包)
题目链接 Problem Description Happy New Term! As having become a junior, xiaoA recognizes that there is n ...