Le jeu de société Terra Mystica possède des mécanismes très intéressants pour l'une des principales ressources, le pouvoir. Au lieu de gagner et de dépenser des unités de pouvoir d'une banque, chaque joueur commence le jeu avec exactement 12 unités de pouvoir réparties sur trois "bols", qui sont étiquetés I, II et III. Gagner et dépenser du pouvoir déplace alors simplement le pouvoir entre ces bols:
- Pour dépenser une unité de puissance, déplacez-la du bol III au bol I (à condition que vous ayez une unité dans le bol III).
- Lorsque vous gagnez une unité de puissance, s'il y a une unité dans le bol I, déplacez-la dans le bol II. S'il n'y a pas d'unités dans le bol I, mais qu'il y en a une dans le bol II, déplacez-la dans le bol III. Si toutes les unités sont déjà dans le bol III, rien ne se passe.
- Lorsque vous gagnez ou dépensez plusieurs unités à la fois, elles sont traitées une unité à la fois.
Voici un exemple. Disons qu'un joueur commence avec la distribution de puissance suivante (donnée dans l'ordre I | II | III
):
5 | 7 | 0
Leur puissance change comme suit s'ils gagnent et dépensent de la puissance plusieurs fois:
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)
Votre tâche consiste à calculer le résultat d'un tel événement de gain ou de dépenses.
Le défi
Vous disposez de quatre entiers en entrée. Les trois premiers, I
, II
, III
, représentent la quantité de puissance dans chacune des trois bols. Ils seront non négatifs, et ils totaliseront 12. Le quatrième nombre,, P
est la quantité de puissance gagnée ou dépensée, et sera dans la plage incluse [-III, 24]
(vous pouvez donc supposer que le joueur n'essaiera jamais de dépenser plus de puissance qu'ils ne le peuvent actuellement, mais ils pourraient gagner plus de puissance que nécessaire pour déplacer toute la puissance dans le bol III).
Vous pouvez prendre ces nombres dans n'importe quel ordre cohérent, en tant qu'arguments séparés, en tant que liste d'entiers ou en tant que chaîne contenant ces entiers. Vous pouvez également prendre P
comme un argument, comme I
, II
, III
comme argument de liste séparée.
Vous devez sortie trois entiers I'
, II'
, III'
qui représentent la quantité d'énergie dans chaque bol après P
unités ont été acquises ou passé, suivant les règles exposées ci - dessus.
Vous pouvez écrire un programme ou une fonction et utiliser l'une de nos méthodes standard de réception d'entrée et de sortie.
Vous pouvez utiliser n'importe quel langage de programmation , mais notez que ces failles sont interdites par défaut.
Il s'agit de code-golf , donc la réponse valide la plus courte - mesurée en octets - l'emporte.
Cas de test
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