Gra planszowa Terra Mystica ma kilka bardzo interesujących mechanizmów dla jednego z podstawowych zasobów, mocy. Zamiast zdobywać i wydawać jednostki mocy z banku, każdy gracz rozpoczyna grę z dokładnie 12 jednostkami mocy, które są rozmieszczone na trzech „misach”, oznaczonych jako I, II i III. Pozyskiwanie i wydawanie mocy następnie przesuwa moc między tymi miskami:
- Aby wydać jednostkę mocy, przenieś ją z misy III do misy I (pod warunkiem, że masz jednostkę w misce III).
- Kiedy zyskasz jednostkę mocy, jeśli w misce I znajduje się jednostka, przenieś ją do misy II. Jeśli w misce I nie ma żadnych jednostek, ale w misce II jest jednostka, przenieś ją do misy III. Jeśli wszystkie jednostki są już w misce III, nic się nie dzieje.
- Gdy zyskujesz lub wydajesz wiele jednostek naraz, są one przetwarzane pojedynczo.
Oto przykład. Powiedzmy, że gracz zaczyna od następującej dystrybucji mocy (podanej w kolejności I | II | III):
5 | 7 | 0
Ich moc zmienia się w następujący sposób, jeśli zdobędzie i wyda moc kilka razy:
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)
Twoim zadaniem jest obliczenie wyniku jednego takiego zdarzenia pozyskiwania lub wydawania.
Wyzwanie
Jako dane wejściowe podano cztery liczby całkowite. Pierwsze trzy, I, II, III, oznaczają ilość energii w każdej z trzech misek. Będą nieujemne i sumują się do 12. Czwarta liczba, Poznacza ilość uzyskanej lub wydanej mocy i będzie w zakresie obejmującym [-III, 24](więc możesz założyć, że gracz nigdy nie będzie próbował wydać większej mocy niż mogą obecnie, ale mogą zyskać więcej mocy niż potrzebują przenieść całą moc do misy III).
Możesz wziąć te liczby w dowolnej spójnej kolejności, jako osobne argumenty, jako listę liczb całkowitych lub jako ciąg zawierający te liczby całkowite. Można również przyjąć Pjako jeden argument za I, II, IIIjako osobna lista jej argumentów.
Należy wyjść trzy liczby całkowite I', II', III'co stanowi ilość energii w każdej misce po P jednostki zostały zdobyte lub wydane, zgodnie z zasadami wyjaśniono powyżej.
Możesz napisać program lub funkcję i użyć dowolnej z naszych standardowych metod otrzymywania danych wejściowych i dostarczania danych wyjściowych.
Możesz używać dowolnego języka programowania , ale pamiętaj, że te luki są domyślnie zabronione.
To jest golf golfowy , więc wygrywa najkrótsza ważna odpowiedź - mierzona w bajtach .
Przypadki testowe
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