ボードゲームTerra Mysticaには、主要なリソースの1つであるパワーに関する非常に興味深いメカニズムがあります。銀行から力の単位を獲得して消費する代わりに、各プレイヤーは、I、II、IIIとラベル付けされた3つの「ボウル」に分配された正確に12の力の単位でゲームを開始します。電力を獲得して消費すると、これらのボウル間で電力が移動します。
- ユニットを消費するには、ボウルIIIからボウルIに移動します(ボウルIIIにユニットがある場合)。
- パワーのユニットを獲得したときに、ボウルIにユニットがある場合、それをボウルIIに移動します。ボウルIにユニットがなく、ボウルIIにユニットがある場合は、ボウルIIIに移動します。すべてのユニットがすでにボウルIIIにある場合、何も起こりません。
- 一度に複数のユニットを獲得または使用すると、それらは一度に1ユニット処理されます。
以下に例を示します。たとえば、プレーヤーは次の電力配分で開始されます(順番に与えられますI | II | III
)。
5 | 7 | 0
彼らが数回力を得て費やすと、彼らの力は次のように変わります。
5 | 7 | 0
Gain 3 ==> 2 | 10 | 0
Gain 6 ==> 0 | 8 | 4 (move 2 power from I to II,
then the remaining 4 from II to III)
Gain 7 ==> 0 | 1 | 11
Spend 4 ==> 4 | 1 | 7
Gain 1 ==> 3 | 2 | 7
Spend 7 ==> 10 | 2 | 0
Gain 12 ==> 0 | 10 | 2 (move 10 power from I to II,
then the remaining 2 from II to III)
Gain 12 ==> 0 | 0 | 12 (the two excess units go to waste)
あなたのタスクは、そのような獲得または支出イベントの結果を計算することです。
チャレンジ
入力として4つの整数が与えられます。最初の3つは、I
、II
、III
、3つのボウルのそれぞれの電力の量を表します。それらは負ではなく、合計は12になります。4番目の数値、P
は獲得または消費されるパワーの量であり、包括的範囲になります[-III, 24]
(したがって、プレーヤーはこれ以上パワーを消費しようとしないと仮定できます)現在できるよりも、すべての力をボウルIIIに移動するために必要な力よりも多くの力を獲得している可能性があります。
これらの数値は、一貫した順序で、個別の引数として、整数のリストとして、またはこれらの整数を含む文字列として使用できます。あなたも取ることができますP
ように、一つの引数としてI
、II
、III
別のリストを引数として。
あなたは、出力3つの整数でなければならないI'
、II'
、III'
各ボウルに電力量を表す後に P
ユニットが獲得やルールは上記で説明し、以下、費やされました。
プログラムまたは関数を記述し、入力を受け取り、出力を提供する当社の標準的な方法のいずれかを使用できます。
任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。
これはcode-golfであるため、バイト単位で測定される最短の有効な回答が勝ちます。
テストケース
I II III P => I' II' III'
5 7 0 3 => 2 10 0
2 10 0 6 => 0 8 4
0 8 4 7 => 0 1 11
0 1 11 -4 => 4 1 7
4 1 7 0 => 4 1 7
4 1 7 1 => 3 2 7
3 2 7 -7 => 10 2 0
10 2 0 12 => 0 10 2
0 10 2 12 => 0 0 12