[ブルーブリッジカップ2017予選]ラマ車

 タイトル説明

小さな、あなたがそれを果たしたカードゲーム?「ラマカー」ゲームと呼ばれるものは、ルールは簡単、非常に魅力的な子供である、があります。
次のようにそのルールをまとめると::、ときゲーム開始ゲームに参加する子どもたちは、AとBは次のように彼らはランダムトランプ・シーケンスと仮定
側:[K、8、X、 K、A、2、A、9、 。5、A]
Bパーティー:[2,7、K、 5、J、5、Q 6、K、4]
Xが"10"を表し、我々は、カードの色を無視します。
スタート、両側Aから側、Bはカードを回します。
それは党カードから出て来たとき、彼はテーブルの上に、キューの先頭から自分のカードを取って、カード(もしあれば)の上に押されました。
本実施形態では、ゲームの処理は:A、K、B 2は、A 7のうち8、Bは、A Xは、この時点での表は、配列である:K、2,8,7、X
カードはBの電源を入れたときKを含む同じKとKテーブルカード配列上の彼のカードは、2 Kの間も含めて、カードを入れたときにバックテールの独自のブランドに勝つことです。
注:操作を容易にするために、カードの順序は、テーブルとは反対側の順に配置されています。
この場合、Aは、B両方のカードの手がある:
A側:[K、A 2、A ,. 9 ,. 5、A]
Bパーティー:[5、J、5、 Q 6、K 4、K 、X、7、8、2 、K]
カードの勝利の手が継続されます。次いで、B 5、A、K、B、J、A、5 Bのうち、及び勝利の手からです。
5、K、J、A、 5
枚のカードのこの時点で両手:
A側:[2、A、9、 5、A]
B側:[Q、6、K、 4、K、X、7、8、2、K 5、A、J、K、5]
注:より多くの時間が勝ち手の1缶テーブルありません勝つカードがなくなっていますが、同じカードポイントと中央部分を取ります。
それにも関わらず、手を受賞当事者は、カードの継続である、時にはただ一枚のカードとウォン、また、許可されています。
あなたがデスクトップからライセンスを勝つことができない場合は最後のカードの手のうちパーティー、しかし、ゲームはすぐに終了します。
この例では、最初の手、最後は最後の手のためにAとBのカードを失うつもり:9K2A62KAX58K57KJ5
このタスクの問題は、片手カードシーケンスを受賞し、計算ゲームの終わりにカードの初期シーケンスの両方に知られています。ゲームが終了することはできません場合は、出力-1。 

エントリー

入力各試験のためにデータの複数のセット、:
入力行2、それぞれ2列、A配列の両方のカード、B初期ハンズ。入力文字列の長さが30以下であります

輸出

各テストデータのセットについて:1つのライン出力、文字列、Aはファーストプレイ、最終ハンドカードシーケンス1の勝利を表します。

サンプル入力

96J5A898QA 
6278A7Q973 
25663K6X7448 
J88A5KJXX45A

サンプル出力

2J9A7QA6Q6889977 
6KAJ458KXAX885XJ645

 

 解決策:スタックやキューなどの使用シミュレーション

書式#include <iostreamの> 
の#include < 文字列 > 
の#include <アルゴリズム> 
書式#include <math.h>の
書式#include < 文字列の.h> 
の#include <マップ> 
書式#include <スタック> 
の#include <キュー>
 の#define LL長い長い
 使用 名前空間は  はstd;
char型 [ 100 ]、B [ 100 ]。
INT メイン()
{ 
    一方(CIN >> B)
    { 
        int型 LEN1 = STRLEN()。
         STRLEN(B)。
        キューのchar > AA; 
        キュー < 文字 > BB。
        マップ < CHARINT > 融点; 

        以下のためにINT iが= 0 ; I <LEN1; I ++ 
            aa.push([I])。
        以下のためにINT iが= 0 ; I <LEN2; I ++ 
            bb.push(B [I])。

        スタック < 文字 > のp; 
        
        INT ANS = 0、フラグ= 0 しばらく(!aa.empty()&&!bb.empty())
        { 
            場合(フラグ== 0 
            { 
                チャー TEMP = aa.front()。
                aa.pop(); 
                もし(MP [TEMP] == 1 
                { 
                    aa.push(TEMP)。
                    MP [TEMP] = 0 ;
                    一方、1 
                    { 
                        チャー X = )(p.top。
                        p.pop(); 
                        aa.push(X)。
                        MP [X] = 0 ;
                        もし(X == 温度)
                             ブレーク
                    } 
                    フラグに =で旗;!// ここで再び反転した後、再び元の値に戻って反転、ルール「勝利カードの後に続けること」が実現される
                }
                 
                { 
                    p.push(TEMP); 
                    MP [ TEMP] = 1 ; 
                } 
                

            } 
            
            { 
                チャー TEMP = bb.front(); 
                bb.pop(); 
                IF(MP [TEMP] == 1// 場合、同じ文字p内部スタック
                { 
                    BB。プッシュ(TEMP)。
                    MP [TEMP]一方 = 0 ;
                    1 
                    { 
                        チャー X = p.top()。
                        p.pop(); 
                        bb.push(X)。
                        MP [X] = 0 ;
                        もし(X == 温度)
                             ブレーク
                    } 
                    フラグ =!国旗; 
                } 
                
                { 
                    p.push(TEMP)。
                    MP [TEMP] = 1
                } 
                

            } 
            
            フラグ=!国旗; 
            ANS ++ ; 
        } 
        場合(ANS> 10000 
            COUT << " -1 " << ENDL。
        他に
        { 
            場合(aa.empty())   
            {    
                (!のbb.empty())
                { 
                    coutの << bb.front(); 
                    bb.pop(); 
                } 
            } 
            
            { 
                しばらく(! aa.empty())
                { 
                    coutの <<aa.front(); 
                    aa.pop(); 
                } 

            } 
            COUT << ENDL。
        } 
    } 
        戻り 0 
}

 

おすすめ

転載: www.cnblogs.com/-citywall123/p/12345318.html