您的位置:首页 > 其它

HDU 2147 —— kiki's game

2016-05-18 21:37 232 查看
kiki's game
Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 40000/10000 K (Java/Others)

[align=left]Problem Description[/align]
Recently kiki has nothing to do. While she is bored, an idea appears in his mind, she just playes the checkerboard game.The size of the chesserboard is n*m.First of all, a coin is placed in the top right corner(1,m). Each time one
people can move the coin into the left, the underneath or the left-underneath blank space.The person who can't make a move will lose the game. kiki plays it with ZZ.The game always starts with kiki. If both play perfectly, who will win the game?
 
[align=left]Input[/align]
Input contains multiple test cases. Each line contains two integer n, m (0<n,m<=2000). The input is terminated when n=0 and m=0.

[align=left]Output[/align]
If kiki wins the game printf "Wonderful!", else "What a pity!".
 
[align=left]Sample Input[/align]

5 3
5 4
6 6
0 0

 
[align=left]Sample Output[/align]

What a pity!
Wonderful!
Wonderful!
 

#include <cstdio>
#include <iostream>

using namespace std;

const int MAXN = 2000 + 5;

bool dp[MAXN][MAXN];

void Init()
{
for(int i=0; i<MAXN; i++)    dp[0][i] = dp[i][0] = 1;

for(int i=1; i<MAXN; i++) {
for(int j=1; j<MAXN; j++) {
dp[i][j] = !(dp[i-1][j] && dp[i-1][j-1] && dp[i][j-1]);
}
}
}

int main ()
{
Init();int n, m;
while(~scanf("%d%d", &n, &m) && (m|n)) {
printf("%s\n", dp
[m]?"Wonderful!":"What a pity!");
}

return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: