11153 kill boss

11153 kill boss

时间限制:1000MS  内存限制:65535K
提交次数:1090 通过次数:340

题型: 编程题   语言: G++;GCC

 

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



 

作者

 scau_acm

 

  很简单的一道模拟题,水题,不解释,直接上代码:

 1 include <stdio.h>
 2 #include <math.h>
 3 
 4 int main()
 5 {
 6     int n,m,d,i;
 7     scanf("%d%d%d",&n,&m,&d);
 8     int acmer[d],boss[d];
 9     for(i=0;i<d;i++)
10         scanf("%d",&boss[i]);
11     for(i=0;i<d;i++)
12         scanf("%d",&acmer[i]);
13     for(i=0;i<d;i++)
14     {
15         if(acmer[i]==boss[i])
16             continue;
17         else if(acmer[i]+boss[i]>0)
18             {
19                 if(fabs(acmer[i])>fabs(boss[i]))
20                     m-=acmer[i];
21                 else
22                     n-=boss[i];
23             }
24         if(n<=0){printf("boss");break;}
25         else if(m<=0){printf("acmer");break;}
26     }
27     if(n>0&&m>0)
28         printf("impossible");
29     return 0;
30 }

 

posted @ 2016-02-24 22:24  爱喝可乐的咖啡  阅读(341)  评论(0编辑  收藏  举报