当前位置: 代码迷 >> 综合 >> 1960-征战的Loy
  详细解决方案

1960-征战的Loy

热度:43   发布时间:2023-12-29 15:40:51.0

【C系列3.16】征战的Loy 1960

Time Limit:  1 s      Memory Limit:   32 MB
Submission:477     AC:101     Score:30.34

 

Description

Loy是ACM队里的女神,由于队里有一股邪恶力量——学长,他们在实验室里无所不为,最可恶的是,他们竟然总是与我们的女神比身高,女神为了维护队里的和平,勤奋多日,终于习得技能,变矮光线。现在,Loy要征战实验室的其中5个学长,学长们吓坏了。

我们的Loy,会分别在 6 级,11 级,16 级的时候习得她的 1 级,2 级,3 级大招。学长们并不知道Loy的等级,变矮光线的效果是释放若干道光线(不同等级释放数量不同),每道光线会使其中一个学长变矮300cm,释放光线的数量与技能等级关系如下:

  • 等级 1 – 释放 4 道光线;
  • 等级 2 – 释放 7 道光线;
  • 等级 3 – 释放 10 道光线。

而当Loy拥有了“黑照”这件装备后,她的技能将会被加强,释放变矮光线的数量会增加。

加强后的技能效果如下:

  • 等级 1 – 释放 5 道光线;
  • 等级 2 – 释放 8 道光线;
  • 等级 3 – 释放 12 道光线。

Loy犹如天神下凡,面对5个学长,开始放变矮光线(当然如果Loy的等级没有达到习得变矮光线的等级,她将放不了变矮光线),当学长的身高<=0,学长就会羞愧而死。所以,大家都想知道Loy能弄死几个学长。

Input

一个整数 T,表示有多少组测试数据。

接下来是 T 组数据,每组数据第一行有两个整数 L (1 <= L <= 25),K (0 <= K <= 1),其中L为Loy此时的等级, K 为 0 时表示Loy没有“黑照”,为 1 时表示Loy有“黑照”。

接下来 5 行,每行有一个整数 Xi (1 <= Xi <= 3000),代表每个学长的身高(cm), 数据保证学长身高单调递增。

Output

每组数据之间有一个空行;

如果Loy弄死了零个学长,输出 "none";

如果Loy弄死了一个学长,输出 "first blood";

如果Loy弄死了二个学长,输出 "double kill";

如果Loy弄死了三个学长,输出 "triple kill";

如果Loy弄死了四个学长,输出 "ultra kill";

如果Loy弄死了五个学长,输出 "rampage"。

Samples

input:
1
16 1
300
2520
2520
2520
2520
output:
double kill

Hint

DOTA常识科普:月光是放一道少一道的

吐槽:这道题当初提交多次未过,but——吸气~吐气~(重复),多试几次,总会过的。

下附AC代码:

#include <stdio.h>
int main() {int t, l, k, a, b, c, d, e;int left, kill;scanf("%d", &t);while (t--) {scanf("%d%d", &l, &k);scanf("%d%d%d%d%d", &a, &b, &c, &d, &e);left = kill = 0;if ( l < 11) {left = 4;if (1 == k)left = 5;}else if (l >= 11 && l < 16) {left = 7;if (1 == k)left = 8;}else if (l >= 16 ) {left = 10;if (1 == k)left = 12;}if (300 * left >= a) {++kill;left = left - (0 == a % 300 ? (a / 300) : (a / 300 + 1));}if (300 * left >= b) {++kill;left = left - (0 == b % 300 ? (b / 300) : (b / 300 + 1));}if (300 * left >= c) {++kill;left = left - (0 == c % 300 ? (c / 300) : (c / 300 + 1));}if (300 * left >= d) {++kill;left = left - (0 == d % 300 ? (d / 300) : (d / 300 + 1));}if (300 * left >= e) {++kill;left = left - (0 == e % 300 ? (e / 300) : (e / 300 + 1));}switch (kill) {case 0: printf("none\n"); break;case 1: printf("first blood\n"); break;case 2: printf("double kill\n"); break;case 3: printf("triple kill\n"); break;case 4: printf("ultra kill\n"); break;case 5: printf("rampage\n"); break;}printf("\n");}return 0;
}



原题链接: http://acm.hznu.edu.cn/OJ/problem.php?cid=1091&pid=33