ACM复习(47)11153 kill boss
2018-03-27 16:36
330 查看
Description
Acmer最近喜欢上了玩某个游戏,这个游戏的格斗风格是以格挡,招架,攻击为主,acmer最近打一个boss打了几遍,还是没有打赢,但是经过几次失败后,
acmer大概摸清了boss的出招规律,所以她做好了相应的出招式,acmer被boss砍掉n滴血后会挂掉,对应的只要acmer在挂掉前砍掉boss m滴血,acmer就能赢了。
现在给你boss的最终出招表和acmer的出招表,问你谁能赢,如果都不能赢那就输出impossible。需要注意的是这个游戏中可以以攻为守,给定系数k,我们用正数表示攻击系数,
负数表示防守系数
,如果双方都是攻击,攻击系数大的可以突破别人的攻击(即对方攻击无效),并且给对手所对应k点的伤害,相等的时候就互不伤害。
当双方一个攻击,一个防守时,攻击系数大于防守系数时,可以突破防守(即对方防守无效),并且给对手所对应k点的伤害。
当防守系数不小于攻击系数能够防守住攻击。 如果双方都是防守,那就什么都没有发生。
(出题人xym)
输入格式
第一行有三个数n(1<=n<=1000),m(1<=m<=1000),d(1<=d<=10000),n表示acmer血量,m表示boss血量,d表示出招的数目。
接下来有两行,第一行表示boss的招式表,所有数绝对值都不大于10000
第二行表示 acmer的招式表。所有数绝对值都不大于10000
输出格式
输出一行表示谁赢,acmer表示acmer赢,boss表示boss赢,impossible表示不知道谁赢。
输入样例
10 10 10
1 2 3 -5 3 -6 7 10 15 20
-1 -3 -2 5 5 -5 11 1 2 3
输出样例
acmer
Acmer最近喜欢上了玩某个游戏,这个游戏的格斗风格是以格挡,招架,攻击为主,acmer最近打一个boss打了几遍,还是没有打赢,但是经过几次失败后,
acmer大概摸清了boss的出招规律,所以她做好了相应的出招式,acmer被boss砍掉n滴血后会挂掉,对应的只要acmer在挂掉前砍掉boss m滴血,acmer就能赢了。
现在给你boss的最终出招表和acmer的出招表,问你谁能赢,如果都不能赢那就输出impossible。需要注意的是这个游戏中可以以攻为守,给定系数k,我们用正数表示攻击系数,
负数表示防守系数
,如果双方都是攻击,攻击系数大的可以突破别人的攻击(即对方攻击无效),并且给对手所对应k点的伤害,相等的时候就互不伤害。
当双方一个攻击,一个防守时,攻击系数大于防守系数时,可以突破防守(即对方防守无效),并且给对手所对应k点的伤害。
当防守系数不小于攻击系数能够防守住攻击。 如果双方都是防守,那就什么都没有发生。
(出题人xym)
输入格式
第一行有三个数n(1<=n<=1000),m(1<=m<=1000),d(1<=d<=10000),n表示acmer血量,m表示boss血量,d表示出招的数目。
接下来有两行,第一行表示boss的招式表,所有数绝对值都不大于10000
第二行表示 acmer的招式表。所有数绝对值都不大于10000
输出格式
输出一行表示谁赢,acmer表示acmer赢,boss表示boss赢,impossible表示不知道谁赢。
输入样例
10 10 10
1 2 3 -5 3 -6 7 10 15 20
-1 -3 -2 5 5 -5 11 1 2 3
输出样例
acmer
解题思路
就跟着模拟就行了#include<stdio.h> int abs(int x){return x >= 0 ? x : -x;} int main() { int n, m, d, a, b, acm[10002], boss[10002]; scanf("%d %d %d", &n, &m, &d); for(int i = 0; i < d; i ++) scanf("%d", &boss[i]); for(int i = 0; i < d; i ++) scanf("%d", &acm[i]); for(int i = 0; i < d; i ++) { if(acm[i] <= 0 && boss[i] <= 0) continue; if(n <= 0 || m <= 0) break; a = abs(acm[i]); b = abs(boss[i]); if(a > b && acm[i] > 0) m -= acm[i]; else if(a < b && boss[i] > 0) n -= boss[i]; } if(n > 0) printf("acmer\n"); else if(m > 0) printf("boss\n"); else printf("impossible\n"); return 0; }
相关文章推荐
- 11153 kill boss
- ACM复习(15)8614 素数
- ACM复习(26)8635 气球
- [ACM] POJ 1088 滑雪 (记忆化搜索复习)
- [ACM] hdu 1465 不容易系列之一(错排复习)
- ACM基础算法复习(STL + DFS + BFS + 并查集 + 快速幂 + 欧几里得算法)
- zoj 3547 The Boss on Mars 第36届ACM大连预选赛I题
- ACM复习(21)8626 原子量计数
- ACM复习(36)9521 射了多少 II
- [ACM] hdu 1465 不容易系列之一(错排复习)
- 【ACM】nyoj_47_过桥问题_201308151616
- ACM复习(13)8612 发牌
- ACM复习(46)10690 分面包
- [ACM] hdu 1465 不容易系列之一(错排复习)
- ACM复习(5)1076 K尾相等数
- zzuli_acm_oj 1851 KILL 小模拟
- ACM复习(17)8620 国际象棋棋盘
- ACM复习(4)1142 巡逻的士兵
- ACM复习(11)8615 快乐
- java SE复习笔记47