Boardgame Terra Mystica memiliki beberapa mekanisme yang sangat menarik untuk salah satu sumber daya utama, daya. Alih-alih mendapatkan dan mengeluarkan unit daya dari bank, setiap pemain memulai permainan dengan tepat 12 unit daya yang didistribusikan di tiga "mangkuk", yang diberi label I, II dan III. Mendapatkan dan membelanjakan daya kemudian dengan mudah menggeser kekuatan di antara mangkuk-mangkuk ini:
- Untuk menghabiskan satu unit daya, pindahkan dari mangkuk III ke mangkuk I (asalkan Anda memiliki unit di mangkuk III).
- Saat Anda mendapatkan unit daya, jika ada unit di mangkuk I, pindahkan ke mangkuk II. Jika tidak ada unit di mangkuk I, tetapi ada unit di mangkuk II, pindahkan ke mangkuk III. Jika semua unit sudah ada di mangkuk III, tidak ada yang terjadi.
- Ketika Anda mendapatkan atau menghabiskan beberapa unit sekaligus, mereka diproses satu unit sekaligus.
Berikut ini sebuah contoh. Katakanlah, seorang pemain mulai dengan distribusi daya berikut (diberikan secara berurutan I | II | III
):
5 | 7 | 0
Kekuatan mereka berubah sebagai berikut jika mereka mendapatkan dan menghabiskan kekuasaan beberapa kali:
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)
Tugas Anda adalah untuk menghitung hasil dari salah satu acara perolehan atau pengeluaran tersebut.
Tantangan
Anda diberi empat bilangan bulat sebagai input. Tiga pertama, I
, II
, III
, mewakili jumlah daya di masing-masing tiga mangkuk. Mereka akan menjadi non-negatif, dan mereka akan berjumlah 12. Angka keempat P
,, adalah jumlah daya yang diperoleh atau dihabiskan, dan akan berada dalam kisaran inklusif [-III, 24]
(sehingga Anda dapat mengasumsikan bahwa pemain tidak akan pernah mencoba menghabiskan lebih banyak daya daripada saat ini, tetapi mereka mungkin mendapatkan kekuatan lebih dari yang mereka butuhkan untuk memindahkan semua kekuatan ke mangkuk III).
Anda dapat mengambil angka-angka ini dalam urutan yang konsisten, sebagai argumen terpisah, sebagai daftar bilangan bulat, atau sebagai string yang berisi bilangan bulat ini. Anda juga dapat mengambil P
sebagai salah satu argumen, seperti I
, II
, III
sebagai daftar argumen yang terpisah.
Anda harus keluaran tiga bilangan bulat I'
, II'
, III'
yang mewakili jumlah daya di setiap mangkuk setelah P
unit diperoleh atau dihabiskan, mengikuti aturan yang dijelaskan di atas.
Anda dapat menulis program atau fungsi dan menggunakan salah satu metode standar kami untuk menerima input dan memberikan output.
Anda dapat menggunakan bahasa pemrograman apa pun , tetapi perhatikan bahwa celah ini dilarang secara default.
Ini adalah kode-golf , sehingga jawaban terpendek yang valid - diukur dalam byte - menang.
Uji Kasus
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