シンプルニム(SGは法律を見つけるためにテーブルをヒット)

二人の選手は、n個のヒープからキャンディーを選んで、最後の1はそれぞれ、彼らが作る.TO同じヒープ(何のお菓子を選んでいないが許可されていない)から来るキャンディーの任意の数を選ぶことができ回しgame.Onを勝つピックプレイヤーを交代しますゲームより面白い、プレイヤーはそれらのそれぞれがミスをしたことがない場合は、ゲームを勝つどのプレーヤー見つけるoperation.Please代わりにピッキングの3つの小さな山(なし空のヒープ)に1つのヒープを分離することができます。
 

 

入力
Intputは、複数のテストケースが含まれています。最初の行は整数 1 T 100、テストケースの数。各ケースは、ヒープの数を示し、整数nで始まり、次の行がNの整数含まSを[ 0 ] S [ 1 ] S [ N - 1 ]とヒープを表すSを[ 0 ] S [ 1 ] S [N - 1 ]それぞれのオブジェクト。1N1061つのS [ I ] 10 9
 

 

出力
各テストケースの場合、出力のいずれかが含まれwhickライン「最初のプレーヤーの勝利を。」または「第2選手が勝ちます」。
 

 

サンプル入力
2 2 4 4 3 1 2 4
 

 

サンプル出力
第二のプレイヤーが勝ちます。まず、プレイヤーが勝ちます。
 

 

著者
UESTC
 

 

ソース
 

 

推薦します
wange2014 | 我々は慎重にあなたのためのいくつかの同様の問題を選択している:   6742   6741   6740   6739   6738
 
 
#include <iostreamの> 
する#include <stdio.hに> 
する#include <アルゴリズム> 
する#include < 文字列・H> 
の#include <ベクトル>
 使用して 名前空間STD。
typedefの長い 長いLL。


// ボイドgetsg(INT X){
 //     のmemset(VIS、0、はsizeof(VIS))。
//     ため(INT i = 0; iは<X、iは++){
 //         VIS [SGの[I] = 1。
//     }
 //     ため(INT I1 = 1、I1 <X、I1 ++){
 //         ため(INT I2 = 1、I2 <X、I2 ++){
 //             (int型I3 = 1、I3 <X、I3 ++)のために{
 //                 もし(I1 + I2 + I3 == X)VIS [SG [I1] ^ SG [I2] ^ SG [I3] = 1。
//             }
 //         }
 //     }
 //     ための式(I = 0をint型;; iが++){
 //         もし(VIS [I] == 0){
 //             SG [X] = I。
//             ブレーク;
//        }
 //     }
 // }


INT メイン(){
 //     ため(INT I = 1; I = 50 <; iは++){
 //         getsg(I)。
//         のprintf( "I:%D%D%D \ n"は、I、SG [I]、SG [I] == I)。
//     } 
    int型トンを。
    scanf関数(" %のD "、&T)。
    一方、(t-- ){
         int型N。
        scanf関数(" %のD "、&N)
        int型 ANS = 0 ;
        int型のTEM;
        以下のためにint型 i = 1 ; iが++; iが<= N ){
            scanf関数(" %のD "、およびTEM)。
            もし(TEMの%8 == 0)tem-- それ以外の 場合(TEM%8 == 7)TEM ++ ; =年^ TEM;            
        }
        もし(ANS == 0)のprintf(" 第2選手の勝利\ N " );
        のprintf(" 最初のプレーヤーが勝利する\ n " );
    }
}

 

おすすめ

転載: www.cnblogs.com/ellery/p/11712960.html