(File IO): input:game.in output:game.out
時間限制: 1000 ms 空間限制: 262144 KB 具體限制
Goto ProblemSet
題目描述
小勇和小實是對好朋友,他們經常一起遊戲。 今天他們玩的遊戲是這樣的:有一個由正方形石頭鋪成的地板,它的高是,長度是。 例如以下是的情況:
現在他們輪流在上面放上長寬分別是和的矩形石塊,可以橫放也可以豎放,但要剛好鋪在地板上兩個未被覆蓋的正方形石頭上,當某人不能放上去時他就輸了。
例如,某次遊戲可能是這樣的,小實橫放石塊在左上面,如下:
然後小勇橫放石塊在右下面,如下:
這時小實不能再放石塊了,所以他輸了。小勇比較禮讓,他讓小實先放。當然,以上的方法可能不是最好的,現在假如他們都絕頂聰明,請你編程判斷究竟誰會贏。
輸入
第一行一個整數,表示測試數據的個數。 接下來有行,每行爲一個測試數據,每個測試數據只有一個整數。
輸出
輸出行,每行輸出相應測試數據的結果。對於每個結果,如果是小勇贏的話就輸出,否則就是小實贏啦,輸出。
樣例輸入
1
1
樣例輸出
xiaoshi
數據範圍限制
解題思路
石子游戲的最優策略是這樣的,假如先放,就豎放,否則就根據對方的方法來放,這時,如果對方橫放,則在其正上方或正下方橫放一石子,如如果對方豎放,也就豎放,按這個方法,很容易得到這個結論:當n爲奇數時小實贏,否則小勇贏。
代碼
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
int c,n;
int main(){
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
scanf("%d",&c);
for(int i=1;i<=c;i++)
{
scanf("%d",&n);
if(n%2!=0)
printf("xiaoshi\n");
else
printf("xiaoyong\n");
}
}