• John


    Little John is playing very funny game with his younger brother. There is one big box filled with M&Ms of different colors. At first John has to eat several M&Ms of the same color. Then his opponent has to make a turn. And so on. Please note that each player has to eat at least one M&M during his turn. If John (or his brother) will eat the last M&M from the box he will be considered as a looser and he will have to buy a new candy box.

    Both of players are using optimal game strategy. John starts first always. You will be given information about M&Ms and your task is to determine a winner of such a beautiful game.


    InputThe first line of input will contain a single integer T – the number of test cases. Next T pairs of lines will describe tests in a following format. The first line of each test will contain an integer N – the amount of different M&M colors in a box. Next line will contain N integers Ai, separated by spaces – amount of M&Ms of i-th color.

    Constraints:
    1 <= T <= 474,
    1 <= N <= 47,
    1 <= Ai <= 4747

    OutputOutput T lines each of them containing information about game winner. Print “John” if John will win the game or “Brother” in other case.

    Sample Input
    2
    3
    3 5 1
    1
    1
    Sample Output
    John
    Brother

    代码:
    ///1.如果所有堆都为1(即c为0) 且为偶数堆(即flag为0)后手拿最后一个  比如 1 1 1 1
    ///2.如果c不为零,存在d大于1 ,如果这样的d只有一个  (flag肯定不为0) 比如 1 1 4 先手拿3个造成对方必败 1 1 1 4 先手拿4个 对方必败
    ///3.如果这样的d不只一个 先手拿一次将flag变为0即可 且总还存在某堆石子数大于1(如果不存在就必败了)。转换成二进制来看就是拿走flag个 剩下的每个位的1都是偶数个 是必败态
    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #define Max 1001
    #define PI 3.1415927
    using namespace std;
    
    int main()
    {
        int t,n,d;
        cin>>t;
        while(t --)
        {
            int flag = 0,c = 0;
            cin>>n;
            while(n --)
            {
                cin>>d;
                flag ^= d;
                if(d > 1)c ++;
            }
            if(!flag&&!c || flag&&c)cout<<"John"<<endl;
            else cout<<"Brother"<<endl;
        }
    }
  • 相关阅读:
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业02
    Django连接MySql数据库
    asyncio异步编程
    Django-rest framework框架
    Git版本管理工具详细教程
    MySQL的sql_mode模式说明及设置
  • 原文地址:https://www.cnblogs.com/8023spz/p/7966762.html
Copyright © 2020-2023  润新知