每年奥运会各大媒体都会公布一个排行榜,但是细心的读者发现,不同国家的排行榜略有不同。比如中国金牌总数列第一的时候,中国媒体就公布“金牌榜”;而美国的奖牌总数第一,于是美国媒体就公布“奖牌榜”。如果人口少的国家公布一个“国民人均奖牌榜”,说不定非洲的国家会成为榜魁…… 现在就请你写一个程序,对每个前来咨询的国家按照对其最有利的方式计算它的排名。

输入格式:

输入的第一行给出两个正整数N和M(≤224,因为世界上共有224个国家和地区),分别是参与排名的国家和地区的总个数、以及前来咨询的国家的个数。为简单起见,我们把国家从0 ~ N−1编号。之后有N行输入,第i行给出编号为i−1的国家的金牌数、奖牌数、国民人口数(单位为百万),数字均为[0,1000]区间内的整数,用空格分隔。最后面一行给出M个前来咨询的国家的编号,用空格分隔。

输出格式:

在一行里顺序输出前来咨询的国家的排名:计算方式编号。其排名按照对该国家最有利的方式计算;计算方式编号为:金牌榜=1,奖牌榜=2,国民人均金牌榜=3,国民人均奖牌榜=4。输出间以空格分隔,输出结尾不能有多余空格。

若某国在不同排名方式下有相同名次,则输出编号最小的计算方式。

输入样例:

4 4
51 100 1000
36 110 300
6 14 32
5 18 40
0 1 2 3

输出样例:

1:1 1:2 1:3 1:4
#include<iostream>
#include<algorithm>
using namespace std;
struct Country{int id,gold,medal,people;double pg,pm;
}a[225];
bool cmp_gold(Country x,Country y)  { return x.gold > y.gold;   }
bool cmp_medal(Country x,Country y) { return x.medal > y.medal; }
bool cmp_pg(Country x,Country y)    { return x.pg > y.pg;       }
bool cmp_pm(Country x,Country y)    { return x.pm > y.pm;       }
int g_[225],m_[225],p_1[225],p_2[225]; // 储存各个国家四种排名int main()
{int N,M,z,flag;cin >> N >> M;/*   数据输入   */for(int z=0;z<N;z++) {cin >> a[z].gold >> a[z].medal >> a[z].people;a[z].pg = a[z].gold * 1.0 / a[z].people;a[z].pm = a[z].medal * 1.0 / a[z].people;a[z].id = z;}/*   金牌榜计入   */sort(a,a+N,cmp_gold);  for(z=0,flag=1;z<N;z++) {g_[a[z].id] = flag;if(a[z].gold != a[z+1].gold) flag = z+2;}/*   奖牌榜计入   */sort(a,a+N,cmp_medal);for(z=0,flag=1;z<N;z++) {m_[a[z].id] = flag;if(a[z].medal != a[z+1].medal) flag = z+2;}/*   金牌密度榜   */sort(a,a+N,cmp_pg);for(z=0,flag=1;z<N;z++) {p_1[a[z].id] = flag;if(a[z].pg != a[z+1].pg) flag = z+2;}/*   奖牌密度榜   */sort(a,a+N,cmp_pm);for(z=0,flag = 1;z<N;z++) {p_2[a[z].id] = flag;if(a[z].pm != a[z+1].pm) flag = z+2;}/*   开始查询   */for(z=0;z<M;z++){if(z>0) cout << " ";cin >> N;int max = g_[N],f_max=1;if(m_[N] < max) max = m_[N] ,f_max = 2;if(p_1[N] < max) max = p_1[N] , f_max = 3;if(p_2[N] < max) max = p_2[N] , f_max = 4;cout << max << ":" << f_max;}return 0;
}

7-11 奥运排行榜(简洁AC+效率高)相关推荐

  1. 小勇机器人充电头坏了_崇安区管道机器人CCTV-管道爬行机器人,武汉天仪ty333,优质效率高...

    水上漂管道检测机器人无线/有线双用ty-G200 崇安区管道机器人CCTV-管道爬行机器人,武汉天仪ty333,优质效率高 天仪仪器公司管道机器人有9款,推荐给您: ty-150无线管道检测机器人(详 ...

  2. 灵魂拷问:用移位来代替除法运算真的效率高吗?Java 编译器到底有没有做除法优化?

    目录 引入 C++ 编译器对除法的优化 Java 编译器对除法的优化 移位运算对应的字节码 除法操作对应的字节码 查看及分析 JIT 即时编译结果 1.手动编译 OpenJDK 2.编译 hsdis- ...

  3. 汇编语言比C51需要效率高,汇编语言与C51语言实现跑马灯实验的比较 -

    当前开发单片机应用系统程序主要应用汇编语言和C51语言,采用汇编语言编写可直接操纵系统的硬件资源,能编写出高效运行的程序代码,程序运行速度快.而采用C51语言编写可改善程序的可读性和可移植性,利于产品 ...

  4. Qt:一个简洁漂亮的高仿网易云播放器

    Qt:一个简洁漂亮的高仿网易云播放器 界面动图展示: 功能简述: 1.音乐的播放.暂停 2.音乐的上.下一曲 3.进度条显示进度.滑动条调整进度 4.音量的滑动调整 5.列表切换歌曲 6.播放.暂停的 ...

  5. python都学什么啊-那些效率高的人都在偷偷学什么?

    原标题:那些效率高的人都在偷偷学什么? 提起潘石屹,你的印象是不是还停留在"SOHO中国"."房产大亨"的标签上?那你真是"图样图森破"! ...

  6. 1个顶11个?程序员效率差距的量化分析

    1个顶11个?程序员效率差距的量化分析 在软件工程的经典<人月神话>中作者提出好的程序员和差的可以达到100倍的效率差别,我还没搞清怎么做到的,但是现实中,好的程序员与差的程序员完全可以达 ...

  7. 为什么 2 * (i * i) 比 2 * i * i 效率高?

    问题 为什么 2 * (i * i) 比 2 * i * i 效率高? 执行如下代码时,平均完成时间在 0.50s 到 0.55s 之间: ublic static void main(String[ ...

  8. NL连接一定是小表驱动大表效率高吗

    前言 两表使用nest loop(以下简称NL)方式进行连接,小表驱动大表效率高,这似乎是大家的共识,但事实上这是有条件的,并不总是成立.这主要看大表扫描关联字段索引后返回多少数据量,是否需要回表,如 ...

  9. case when 效率高不高_南京薄蜂窝纸板效率高

    目前国产的瓦楞纸板都不同程度地存在起泡现象,它在很大程度上影响了瓦楞纸板的质量,若每平方米脱胶部分面积之和大于500px~2,则纸板为不合格产品,因此,有效地控制和脱胶和起泡缺陷,对生产企业提高产品质 ...

最新文章

  1. 【Java】MD5字符串的加密解密
  2. boost::hana::detail::wrong用法的测试程序
  3. ACM Doing Homework again
  4. 解析java源代码_一步步解析java执行内幕
  5. html多级折叠菜单表单,JS实战篇之收缩菜单表单布局
  6. Tether已在以太坊扩容方案Hermez Network上发行USDT
  7. OpenCVQt学习之一——打开图片文件并显示
  8. 让驰骋工作流程引擎 ccbpm使用自定义表单来实现自己的业务逻辑.
  9. Java JDK 8的安装与配置
  10. VISA 通信command总结
  11. FMEA-MSR步骤五:风险分析(二)
  12. 有线路由器后接无线路由器
  13. Windows Server 2012 R2 更改系统语言
  14. 【C生万物】 函数递归篇
  15. Telegram图文详解-- 编程机器人(谷歌脚本服务)
  16. Dual Super-Resolution Learning for Semantic Segmentation解读
  17. 挑战华为社招:2021Java高级面试题汇总解答
  18. CY7C68013A在WIN7下64位的USB驱动程序安装过程
  19. MATLAB 相机标定中标定板角点像素坐标系到世界坐标系的转换
  20. 编译mbedtls (mingw方式)

热门文章

  1. 深挖数据价值,英特尔加速医院数字化转型
  2. C语言习题练习7——英文单词排序
  3. 漂亮国因一颗气球而疯狂给质量团队带来的启示
  4. 码农的恋爱观:只有程序员能看懂
  5. NRF52832学习笔记(35)——4G模块EC200S使用
  6. android gphone 论坛,Android,任重道远,希望给想玩GPhone的同志们提个醒
  7. 斗地主开篇-啰嗦篇(一)
  8. 程序员的自我修养之数学基础04:特殊矩阵(零矩阵、单位矩阵、对角矩阵、逆矩阵、转置矩阵、对称矩阵)
  9. BUUCTF——[GXYCTF2019]BabySQli
  10. MultipartFile与File的一些事