1079 - 棋盘游戏
时间限制 : 1 秒
内存限制 : 32 MB
小明和小红在玩一种棋盘游戏,棋盘的尺寸为n个方格*m个方格。一开始在棋盘的右上角(1,m)放一枚硬币,每次一个人可以将硬币向左、下或左下的方格移动。
当某个人无法再移动硬币了,那么这个人就输了。游戏总是小明先开始,如果他们两个每步都是最优策略,则谁将赢得游戏?
题目输入
输入包含多组测试数据。每组输入两个整数n和m(0<n,m<=2000)。
当n=m=0时,输入结束。
题目输出
对于每组输入,如果小明赢,输出“Wonderful!”,否则输出“What a pity!”。
输入/输出样例
输入格式
5 3 5 4 6 6 0 0
输出格式
What a pity! Wonderful! Wonderful!
C语言解答
#include<stdio.h> int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF,n||m) { n%=2; m%=2; if(n&&m) printf("What a pity!\n"); else printf("Wonderful!\n"); } return 0; }
C++解答
#include<stdio.h> int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF,n||m) { n%=2; m%=2; if(n&&m) printf("What a pity!\n"); else printf("Wonderful!\n"); } return 0; }
Java解答
import java.util.*; public class Main{ static void chessboard(int n,int m){ n %= 2; m %= 2; if(m == 1 && n == 1) System.out.println("What a pity!"); else System.out.println("Wonderful!"); } public static void main(String args[]) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); while(n != 0 && m != 0) { chessboard(n, m); n = sc.nextInt(); m = sc.nextInt(); } } }