Настільна гра Terra Mystica має дуже цікаву механіку для одного з основних ресурсів, потужності. Замість того, щоб отримувати та витрачати одиниці потужності у банку, кожен гравець починає гру з рівно 12 одиницями сили, які розподіляються на три «чаші», що мають позначення I, II та III. Набираючи та витрачаючи силу, тоді просто перекладаєте владу між цими чашами:
- Щоб витратити одиницю потужності, перемістіть її з чаші III в чашу I (за умови, що у вас є одиниця в чаші III).
- Коли ви наберете одиницю потужності, якщо в чаші I є одиниця, перемістіть її в чашу II. Якщо в чаші I немає одиниць, але в чаші II є одиниця, перемістіть її в чашу III. Якщо всі одиниці вже в чаші III, нічого не відбувається.
- Коли ви отримуєте або витрачаєте кілька одиниць одночасно, вони обробляються по одній одиниці.
Ось приклад. Скажімо, гравець починає такий розподіл потужності (наводиться в порядку 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)
Ваше завдання - обчислити результат однієї такої події на виграш або витрачання.
Змагання
Вам вводять чотири цілі числа як вхідні дані. Перші три, I
, II
, III
, являють собою кількість енергії в кожному з трьох чаш. Вони будуть негативними, і вони підсумують 12. Четверте число, P
- це кількість отриманої або витраченої енергії, і буде в діапазоні включень [-III, 24]
(тому ви можете припустити, що гравець ніколи не намагатиметься витратити більше сили ніж вони в даний час можуть, але вони можуть набирати більше енергії, ніж потрібно для переміщення всієї сили в чашу III).
Ви можете приймати ці числа в будь-якому послідовному порядку, як окремі аргументи, як список цілих чисел, або як рядок, що містить ці цілі числа. Ви також можете взяти в P
якості одного аргументу, а I
, II
, III
як окремий список аргументів.
Виведіть три цілих числа I'
, II'
, III'
які представляють собою кількість енергії в кожній чаші після P
одиниці були отримані або витрачені, дотримуючись правил пояснено вище.
Ви можете написати програму чи функцію та скористатися будь-яким із наших стандартних методів отримання вводу та надання виводу.
Ви можете використовувати будь-яку мову програмування , але зауважте, що ці лазівки за замовчуванням заборонені.
Це код-гольф , тому найкоротший вірний відповідь - вимірюється в байтах - виграє.
Випробування
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