Enoncé¶
Avec les informations tout juste récupérées, Valérian commence à se poser des questions sur l'encodage des nombres qu'Oscar lui indiquait, avant de se rendre compte qu'Oscar lisait le manuel d'instructions de sa machine à laver ! (Qui bien sûr ne suit pas le même système d'encodage pour la température que notre machine pour l'année...). Personne ne se souvenant du système d'encodage exact, les jeunes vont désespérément tenter de retourner au présent pour récupérer le manuel d'instructions... Même sans connaître l'encodage, ils savent que grâce au mode relatif, ils ne peuvent qu'avancer dans le temps. Alors Valérian décide de faire une combinaison aléatoire pour voir où ça les mène.
Les jeunes sortent alors de leur machine à voyager dans le temps et tombent nez à nez avec ce qui semble être un mathématicien Italien des années 1000. Curieux de l'étrange machine par laquelle nos aventurier viennent de s'extirper, le mathématicien leur offre sa dernière invention, en échange de pouvoir étudier quelques temps leur impressionnante machine.
Cependant, le cadeau du mathématicien, une petite machine sous la forme d'une grande liste X d'entiers, est tout de même trop grand pour pouvoir rentrer dans la machine temporelle !
Heureusement pour nos explorateurs, le mathématicien connaît une opération permettant de modifier la machine sans pour autant la casser :
- Choisir un indice $i$
- Décrementer $X_{i+2}$
- Incrémenter $X_{i+1}$
- Incrémenter $X_i$
Pour réduire la taille de la machine, le mathématicien vous indique qu'il est possible d'effectuer cette opération sur la machine autant de fois que souhaité, et qu'il est également toujours possible de supprimer le dernier élément de la liste s'il s'agit d'un 0.
Aidez les jeunes à trouver la forme la plus compacte possible de la machine sans la casser !
Les valeurs présentes dans cette forme pouvant être grandes, il est demandé de les afficher modulo $1\,000\,000\,007$.
Par exemple, la liste $[1\,000\,000\,009, 42]$ sera affichée $[2, 42]$ car $1\,000\,000\,009$ mod $1\,000\,000\,007 = 2$ et $42$ mod $1\,000\,000\,007 = 42$.
Entrée¶
L’entrée contiendra :
- Sur la première ligne, un entier : N, la taille initiale de la machine.
- Sur la ligne suivante, une liste de N entiers séparés par des espaces : X, la machine à compacter.
Sortie¶
Vous devez afficher la version la plus courte de la machine sans la casser : un certain nombre d'entiers, sur une ligne, séparés par un espace. Pour rappel, les valeurs sont à afficher modulo $1\,000\,000\,007$.
Contraintes¶
- $1 \le N \le 6$
- $0 \le X_i \le 100$ pour tout $i$
- $X_i > 0$ pour au moins un $i$
Contraintes de performance¶
- $1 \le N \le 100\,000$
- $0 \le X_i \le 1\,000\,000\,000$ pour tout $i$