题目大意:反Nim游戏,即取走最后一个的人输
首先状态1:如果所有的堆都是1,那么堆数为偶先手必胜,否则先手必败
然后状态2:如果有两个堆数量相同且不为1,那么后手拥有控场能力,即:
若先手拿走一堆,那么后手可以选择将另一堆留下1个或者全拿走,使这两堆最终只剩1个或0个;
若先手将一堆拿剩一个,那么后手可以选择将另一堆留下一个让先手拿或全拿走,使这两堆最终只剩1个或0个;
若先手将一堆拿走一部分,那么后手可以将另一堆同样拿走一部分,然后同上
状态3:若Xor!=0 那么先手可以先拿走一部分让Xor=0 然后同状态2先手必胜 否则先手必败
鉴于本人智商余额严重不足,以上内容仅存在参考价值,无法证明正确性,欢迎指正
于是若所有堆全是1 Xor==0先手必胜 否则后手必胜
若有堆不是1 Xor==0后手必胜 否则先手必胜
var
t,i,j,n,sg,fl,x:longint;
begin
read(t);
for i:=1 to t do begin
read(n); sg:=0; fl:=0;
for j:=1 to n do begin
read(x); sg:=sg xor x;
if (x<>1) then fl:=1;
end;
if (sg+fl=0) or ((sg<>0) and (fl<>0)) then writeln('John') else writeln('Brother');
end;
end.