Yougth's Game II
时间限制:1000 ms | 内存限制:65535 KB
难度:2
-
描述
-
CET4的成绩出来了,Yougth考的很惨,为了调整心情,它决定去找CET4过了的Hrdv同学PK,当然作为一个有涵养的人,不能动不动就动手,于是他想了一个游戏和Hrdv去玩。
游戏是这样,由第三方任意给定k(1<=k<=100)个数字a1,a2,a3...ak,一开始,有x(1<=k<=10^4)枚硬币,Yougth和Hrdv轮流取硬币。每次取的硬币的枚数一定要在a1,a2,a3...ak当中。Yougth先取,还是老规矩,取走最后一枚硬币的一方获胜,而双方都非常聪明,采取最优策略,谁会获胜?
-
输入
- 多组测试数据,第一行两个数x和k
第二行是k个数a1,a2,a3...ak,为简化题目难度,k个数中一定有1.
输出 - 如果Yougth获胜输出“Wa,Yougth is Best!”
如果Hrdv获胜输出“Oh,Sorry!Yougth Lost!”
样例输入 -
9 2 1 4 10 2 1 4
样例输出 -
Wa,Yougth is Best! Oh,Sorry!Yougth Lost!
-
AC码:
-
#include<stdio.h> #include<string.h> int num[10005]; int main() { int n,k,i,j; int a[105]; while(~scanf("%d%d",&n,&k)) { for(i=0;i<k;i++) { scanf("%d",&a[i]); } memset(num,0,sizeof(num)); for(i=1;i<=n;i++) { for(j=0;j<k;j++) { if(a[j]<=i) { if(num[i-a[j]]==0) num[i]=1; } } } if(num[n]==1) printf("Wa,Yougth is Best!\n"); else printf("Oh,Sorry!Yougth Lost!\n"); } return 0; }
- 多组测试数据,第一行两个数x和k