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?
5 3 5 4 6 6 0 0
What a pity! Wonderful! Wonderful!
题意:k和z下棋,规则如下:
1.棋盘大小是n*m,每次都是k先走,棋盘上只有一颗子且最开始在右上角
2.每个人每次只能把棋子移动到左或下或左下这三个位置
3.谁不能移动谁输
求k是否胜利,是就输出Wonderful!否就输出What a pity!
思路:
由题意可以知道n=m=1时k必败,那么必败态可以转移到右或上或右上,这几个都为必胜态。如果一个格子无论怎么移动都不能到必败态,那么这个格子为必败态
所以可以手动画图,发现当n和m都是奇数时k必输,否则k赢。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n, m;
int main()
{
while(~scanf("%d%d", &n, &m))
{
if(n==0&&m==0)
break;
if((n&1)&&(m&1))
printf("What a pity!\n");
else
printf("Wonderful!\n");
}
return 0;
}