1. 程式人生 > >[SHOI2008]小約翰的遊戲John

[SHOI2008]小約翰的遊戲John

span input 選擇 str bsp 應該 ios color div

Description

  小約翰經常和他的哥哥玩一個非常有趣的遊戲:桌子上有n堆石子,小約翰和他的哥哥輪流取石子,每個人取
的時候,可以隨意選擇一堆石子,在這堆石子中取走任意多的石子,但不能一粒石子也不取,我們規定取到最後一
粒石子的人算輸。小約翰相當固執,他堅持認為先取的人有很大的優勢,所以他總是先取石子,而他的哥哥就聰明
多了,他從來沒有在遊戲中犯過錯誤。小約翰一怒之前請你來做他的參謀。自然,你應該先寫一個程序,預測一下
誰將獲得遊戲的勝利。

Input

  本題的輸入由多組數據組成第一行包括一個整數T,表示輸入總共有T組數據(T≤500)。每組數據的第一行包

括一個整數N(N≤50),表示共有N堆石子,接下來有N個不超過5000的整數,分別表示每堆石子的數目。

Output

  每組數據的輸出占一行,每行輸出一個單詞。如果約翰能贏得比賽,則輸出“John”,否則輸出“Brother”
,請註意單詞的大小寫。

Sample Input

2
3
3 5 1
1
1

Sample Output

John
Brother
Anti-Nim遊戲(反Nim遊戲)
 1 #include<iostream>
 2 #include<cstdio>
 3
#include<cstring> 4 #include<algorithm> 5 #include<cmath> 6 using namespace std; 7 int cnt,ans,n; 8 int main() 9 {int T,i,x; 10 cin>>T; 11 while (T--) 12 { 13 cin>>n; 14 cnt=0;ans=0; 15 for (i=1;i<=n;i++) 16 { 17 scanf("
%d",&x); 18 ans^=x; 19 if (x>1) cnt++; 20 } 21 if (cnt==0&&ans==0) 22 cout<<"John\n"; 23 else if (cnt>=1&&ans) 24 cout<<"John\n"; 25 else cout<<"Brother\n"; 26 } 27 }

[SHOI2008]小約翰的遊戲John