百小度是一个ACMer,也是一个超级赛亚人,每个ACMer都有一个战斗力,包括百小度。
所谓超级赛亚人的定义,是说如果在对抗中刚好接近极限状态,那就会激发斗志,实力提升.

具体来说,就是百小度现在要接受一些ACMer的挑战了,这些ACMer有n个人,第i个人的战斗力是a[i]。


百小度接下来可以自主安排与这n个ACMer的PK顺序,他要想在PK赛中赢过另外一个ACMer,就必须使得自己的战斗力不小于对方(平局情况他会按照百小度字典上的规则把自己排在第一).

如果百小度的战斗力大于对方,那么百小度就会轻易获胜,得不到锻炼并且骄傲起来,他以后的战斗力将保持在这个值,再也不会发生改变。
如果百小度的战斗力等于对方,那么百小度在获胜的同时也会感到很吃力,但是这会激发百小度的斗志,使得他刻苦刷题,在下场PK赛之前,战斗力最多提升k点(即可以提升0~k点任意值).

k是百小度的潜力提升上限,会被给定一个初始值,这个潜力提升上限k在后面的比赛中会下降.

每战胜一个ACMer,这个潜力上限k将减少1(因为超级赛亚人百小度也会感到累),但k最低只会减少到0,即不会出现战斗力下降的情况
。也就是第一次比赛如果激发了百小度的斗志,他能把战斗力提升0~k的任一值,如果第二次比赛继续被激发斗志,他能在第一次提升后的基础上,把战斗力再提升0 max(0,k−1),依次类推…

m是百小度的初始战斗力上限,也就是百小度第一次进行PK赛的时候,可以选择0~m的任意一个值作为他的战斗力.

现在希望你编写程序,判断一下百小度是否战胜所有的ACMer.

Input
输入包含多组数据(数据不超过500组)

第一行一个整数T,表示T组数据

对于每组数据,第一行包括三个整数n,m,k(1≤n≤104,1≤m,k≤108)

第二行包括n个正整数,表示彪形大汉的战斗力(战斗力为不超过1012的正整数)

Output
对于每组数据,先输出一行Case #i: (1≤i≤T)

如果百小度能打败所有的ACMer,再输出"why am I so diao?"

否则再输出"madan!"

Sample Input
2 5 11 3 15 13 10 9 8 5 11 3 8 9 10 13 16
Sample Output
Case #1: why am I so diao? Case #2: madan!

Hint

第一组样例解释 5个ACMer,初始战斗力选择范围是[0,11],接下来每场战斗力提升上限是3,2,1,0,0,...,0 百小度首先使得自己的初始战斗力为10,打败战斗力为10的第一个ACMer, 然后选择战斗力提升3,变成13,打败战斗力为13的第二个ACMer, 然后选择战斗力提升2,变成15,打败战斗力为15的第三个ACMer, 之后再以任意顺序打败剩下的ACMer

http://acm.hdu.edu.cn/showproblem.php?pid=5246

#include<iostream>
#include<algorithm>
#include<string>
#include<map>
#include<vector>
#include<cmath>
#include<queue>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#define ll long long
using namespace std;
int main(){int t;cin>>t;int g=0;while(t--){ll x[100001];printf("Case #%d:\n",++g);int n,m,k;scanf("%d %d %d",&n,&m,&k);for(int i=0;i<n;++i){scanf("%I64d",&x[i]);}sort(x,x+n);if (x[0] > m) {  //所有值都大于m,不能激发kputs("madan!");continue;}int p=upper_bound(x,x+n,m)-x;if(x[p]>m)p--;    //第一个必须取不大于m的值,用来激发k ll a=x[p];for(int i=p+1;i<n-1;++i){if(k<0)k=0;if(a+k>=x[i]&&a+k<x[i+1]){  //比赛时用了复杂的写法,怎么就没想到这样写… a=x[i];--k;}}if(k<0)k=0;if(a+k>=x[n-1])printf("why am I so diao?\n");elseprintf("madan!\n");}return 0;
}

【百度之星初赛】 超级赛亚ACMer(灵活题)相关推荐

  1. 2015Astar百度之星初赛 1001 超级赛亚ACMer

    超级赛亚ACMer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  2. 2015年百度之星初赛(1) --- A 超级赛亚ACMer

    超级赛亚ACMer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem D ...

  3. HDU 5246 超级赛亚ACMer 【贪心】【STL版本二分】

    超级赛亚ACMer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. 【杭电oj】5246 - 超级赛亚ACMer(二分 贪心 STL)

    点击打开题目 超级赛亚ACMer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  5. hdu5246超级赛亚ACMer

    题意(中文题意直接粘吧)                             超级赛亚ACMer Problem Description   百小度是一个ACMer,也是一个超级赛亚人,每个ACM ...

  6. [水]2015百度之星初赛第一场 超级赛亚ACMer

    Description 百小度是一个ACMer,也是一个超级赛亚人,每个ACMer都有一个战斗力,包括百小度.
所谓超级赛亚人的定义,是说如果在对抗中刚好接近极限状态,那就会激发斗志,实力提升.
 具 ...

  7. hdu5246 超级赛亚ACMer

    Problem Description 百小度是一个ACMer,也是一个超级赛亚人,每个ACMer都有一个战斗力,包括百小度.
所谓超级赛亚人的定义,是说如果在对抗中刚好接近极限状态,那就会激发斗志, ...

  8. hdu 5246 超级赛亚ACMer

    百小度是一个ACMer,也是一个超级赛亚人,每个ACMer都有一个战斗力,包括百小度.
所谓超级赛亚人的定义,是说如果在对抗中刚好接近极限状态,那就会激发斗志,实力提升. 具体来说,就是百小度现在要接 ...

  9. hdu5246 超级赛亚ACMer (百度之星初赛)(模拟)

    题意:一个初始战斗力上限为m的选手,和战斗力相同的人战斗后,该选手最多可提升k点战斗力,每提升一次k值减一:和战斗力低于他的人战斗,战斗力不变: n名挑战者,给出每名挑战者的战斗力,问他是否能将挑战者 ...

最新文章

  1. centerOs-6.8的安装
  2. 有多少人在51job上找到工作_打工人都是人上人的原因找到了!
  3. 145. 超市【小根堆 贪心】
  4. bzoj1560:[JSOI2009]火星藏宝图(斜率优化)
  5. Linux tar命令高级用法——备份数据
  6. 获取朋友圈照片_朋友圈可以发 30 秒视频啦!用微视这个新功能就能办到
  7. Linux断点方法,一种基于Linux问题断点的定位方法及系统与流程
  8. 做游戏,学编程(C语言) 7 学习EasyX图形交互功能----flappy bird源代码
  9. 每日三道前端面试题--vue 第一弹
  10. 文件夹html文件批量替换,DirRplacer(文件批量替换工具)
  11. IIS6/IIS7以上、Nginx、Apache拦截屏蔽垃圾蜘蛛UA爬行降低负载方法IIS7.5如何限制某UserAgent 禁止访问
  12. 杰理之串口1使用固定引脚的配置方法【篇】
  13. 有关UEFI,GPT分区以及系统引导等问题的了解
  14. 使用晨曦账本记录店铺收支
  15. mysql 5.7 group replication 之五 [ERROR] Plugin group_replication reported: 'Table tmp_t0 does not hav
  16. java io 设备未就绪,GRADLE遇见“设备未就绪”
  17. setcontext
  18. 基于智能空间布局优化的系留低空应急通信系统设计及研究
  19. SaaS营销网站剖析:SaaS主页,你给用户的第一印象
  20. 楼宇自控系统 建筑设备监控系统 触摸屏图库 昆仑通态触摸屏专用 \触摸屏组态图库

热门文章

  1. 台湾远翔DC/DC降压芯片FP8207M,16V3A多节锂电充电开关模式芯片
  2. oracle数据泵整库备份,详解oracle 12c通过数据泵expdp/impdp工具实现对数据备份、恢复...
  3. 养成番:0基础入门学习Python---Day05(元组、二维元组、字典、set集合以及操作方法)
  4. Flutter路由守卫拦截
  5. 评论列表模板 html代码,组件案例-评论列表.html
  6. 安卓常用开源项目总结
  7. i7 7700hq性能怎么样 是什么水平
  8. php百分比四舍五入两位,PHP保留两位小数 四舍五入方法
  9. csgo星空天空代码_csgo代码大全 最实用的CSGO代码
  10. java中两个doub组成一个数组_Java基础知识2-Java基本语法