• 8.2.6 John


    John

    Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
    Total Submission(s): 31 Accepted Submission(s): 23

    Problem Description
    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.

     

    Input
    The 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

     

    Output
    Output 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

    anti-nim

    sg函数的题 给我写过的一篇sg函数的链接

    http://www.cnblogs.com/cssystem/p/3204826.html

     1 #include <cmath>
     2 #include <cstdio>
     3 #include <algorithm>
     4 #include <cstring>
     5 #include <string>
     6 #include <cstdlib>
     7 using namespace std;
     8 
     9 const int maxn=210;
    10 int n,ans,T,x;
    11 bool flag;
    12 
    13 void close()
    14 {
    15 exit(0);
    16 }
    17 
    18 
    19 void init()
    20 {
    21     scanf("%d",&T);
    22     while (T--)
    23     {
    24         scanf("%d",&n);
    25         flag=false;
    26         scanf("%d",&ans);
    27         if (ans>1) flag=true;
    28         for (int i=2;i<=n;i++)
    29         {
    30             scanf("%d",&x);
    31             if (x>1) flag=true;
    32             ans=ans ^ x;
    33         }
    34         if (not flag) //全部是1
    35         {
    36             if (n % 2==0)
    37                 printf("John
    ");
    38             else
    39                 printf("Brother
    ");
    40         }
    41         else
    42         {        
    43             if (ans!=0)
    44                 printf("John
    ");
    45             else
    46                 printf("Brother
    ");
    47         }
    48     }
    49 }
    50 
    51 int main ()
    52 {
    53     init();
    54     close();
    55     return 0;
    56 }
  • 相关阅读:
    forkjoinpool
    json path
    如何处理json字符串
    ios如何快速转型安卓开发-专题3
    ios如何快速转型安卓开发-专题1
    framework创建及接入方式
    Cocoapods包管理
    cf 1102 B
    夜深人静写题解--杭电第五场
    夜深人静写题解--牛客第六场
  • 原文地址:https://www.cnblogs.com/cssystem/p/3212534.html
Copyright © 2020-2023  润新知