いくつかのトレーディングカードは実際の価値があり、お金で売ることができます。カードを曲げると、価値がなくなり、見た目が新しくなります。トレーディングカード(ポケモン、マジックなど)のデッキがあり、それらをシャッフルしたいとします。すべてのカードを曲げるブリッジを行う代わりに、カードをシャッフルする別の簡単な方法は、カードを山に置くことです。これが私の意味です。
バックグラウンド
60枚のカードデッキをシャッフルする必要がある場合、60枚のカードを20枚のカードの3つの山に分けることができます。これには複数の方法があります。最も明白なのは、カードをパイルAに入れ、次に1つをパイルBに入れ、次に1つをパイルCに入れることです。別の方法は、カードをパイルC、次にB、次にAに入れることです。カードを山に均等に広げる方法でもあります。これは1つです。カードを山Aに置き、別のカードをAに置き、次にカードを山Bに置き、次にカードを山Cに置きます。
チャレンジ
evenパイルにシャッフルする特定の方法がカードを山に均等に広げた場合に出力unevenし、そうでない場合は各山のカードの数と出力する完全なプログラムを作成します。
入力
入力は、STDINまたは最も近い代替(関数なし)から取得されます。
[sequence] [deck size]
sequence文字列です。カードが山に置かれているパターンを示します。それぞれの異なるキャラクターは1つのパイルに対応します。この文字列は常にデッキサイズの下にあり、大文字のAZのみが含まれます。deck sizeデッキにあるカードの数を指定する整数です。デッキのサイズが60の場合、デッキ内のカードの数は60です。
出力
even
シャッフル終了時の各山のカードの数が同じである場合、プログラムはこれを出力する必要があります。
uneven [pile1] [pile2] [...]
シャッフルの終わりにある各山のカードの数が同じでない場合、プログラムは次のように出力unevenし、各山のカードの数を出力する必要uneven 20 30があります。パイル数は関係ありません。
その他の情報
- これはコードゴルフの課題なので、9月25日にバイト単位で最短のコードが勝ちます。バイト数が同数の場合、最初に送信されたコードが優先されます。
- プログラムは関数ではなくプログラムでなければなりません。
- 可能であれば、オンラインインタープリターへのリンクまたはあなたの言語のインタープリターをダウンロードできる場所へのリンクを回答に含めてください。
- このチャレンジ内で私が指定しないものは公平なゲームです。つまり、私がそれを言わなくても、それはあなた次第です。何か曖昧なことがあれば、教えてください。それに応じて回答を編集します。(うまくいけば、これは私の最後の挑戦よりスムーズに行きます。)
例
Input | Output | Alternate outputs (if uneven)
|
ABC 30 | even
ABC 31 | uneven 11 10 10 | uneven 10 11 10 | uneven 10 10 11
BCA 60 | even
BBA 24 | uneven 8 16 | uneven 16 8
ABACBC 120 | even
BBABA 50 | uneven 20 30 | uneven 30 20
AABBB 12 | even
:P
ABDD 12有効な入力?出力はどうあるべきですか?また、私はそれが正しいことを理解しAABBB 12ていますか?
sequence見えるのか、どのように機能するのかわかりません。テストケースをいくつか追加していただけませんか?