poj 3480 John 간단 한 nim 게임

1151 단어 알고리즘
John
(1) 1 이 넘 는 개 수 는 2 이 고 다른 값! =0. 먼저 이 기 는 사람 이 이기 고, 0 이면 후자 가 이기 면 바로 nim 로 한다.
(2) 1 이 넘 는 개 수 는 1 개, 그 다음 에 선승.
(3) 1 이 넘 는 개수 가 없 으 면 모두 1 이면 홀수 개 는 후자 가 이 기 는 것 이 고 짝수 일 때 먼저 이 기 는 것 이다.
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<math.h>
int main()
{
    int x;
    scanf("%d",&x);
    while(x--){           
        int n;
        scanf("%d",&n);
        int aboveOne=0,num,tmp;
        scanf("%d",&num);
        if(num>1)aboveOne++;
        for(int i=2;i<=n;i++){
           scanf("%d",&tmp);
           if(tmp>1)aboveOne++;
           num=num^tmp;        
        }       
        if(aboveOne>=2){
            if(num!=0)printf("John
"); else printf("Brother
"); } if(aboveOne==1){ printf("John
"); } if(aboveOne==0){ if(n%2==1)printf("Brother
"); else printf("John
"); } } return 0; }

좋은 웹페이지 즐겨찾기