Vis-à-vis Linguistique – Épreuve régionale 2024

Niveau 5 ⋅ Validation weight: 15%

Énoncé

Jøsëf Marchand se retrouve à Asgard. Cependant, il a beaucoup de mal à comprendre les dieux. En effet, ces derniers n'utilisent pas d'espace pour séparer leurs mots…

Le langage des dieux n'utilise que les deux caractères ( et ).

Un mot est dit opposable si :

  • Sa taille est paire ;
  • La première moitié du mot est le reflet de la seconde moitié du mot. C'est à dire que la première moitié du mot ne partage aucun caractère en commun avec la seconde moitié du mot, inversée.

Par exemple, le mot ())()()(() est opposable, car la première moitié est le reflet de la seconde : ())() ()((). Autrement dit, la première moité, ())(), ne partage aucun caractère avec la seconde moitié lue de droite à gauche, )(()(.

Les mots du langage des dieux sont toujours opposables.

Étant donné une phrase divine, aidez Jøsëf Marchand à la décomposer en mots, en lui indiquant la taille de chacun des mots. S'il est impossible de décomposer la phrase en une séquence de mots opposables, alors indiquez IMPOSSIBLE.

Entrée

L’entrée contiendra :

  • Sur la première ligne, un entier : N, la taille de la phrase.
  • Sur la ligne suivante, une liste de N caractères juxtaposés : phrase, la phrase divine à analyser.

Sortie

S'il est possible de décomposer la phrase en une séquence de mots opposables, proposer une décomposition en affichant la taille des mots, séparés par un espace. Sinon, afficher IMPOSSIBLE.

Si plusieurs solutions existent, afficher n'importe laquelle d'entre elles.

Contraintes

  • $1 \le N \le 40$
  • $sequence[i] \in \{(, )\}$

Contraintes de performance

  • $1 \le N \le 100\,100$

Contraintes d'exécution

Utilisation mémoire maximum
100000 kilo-octets
Temps d'exécution maximum
2000 millisecondes

Exemples d'entrée/sortie

Exemple d'entrée
12
()(()))))(((
Exemple de sortie
2 4 6
Commentaire

Ici, la phrase ()(()))))((( est en fait composée de trois mots : () (()) )))(((

On peut vérifier que les trois mots sont opposables :

  • ( )
  • (( ))
  • ))) (((
Exemple d'entrée
10
(((())()))
Exemple de sortie
IMPOSSIBLE
Commentaire

Ici, il est impossible de séparer la phrase en une séquence de mots opposables.

Exemple d'entrée
20
(((())()))((()(())))
Exemple de sortie
20
Commentaire

Ici, la phrase est en fait composée d'un unique mot. En effet, la phrase est en elle même opposable :

  • (((())())) ((()(())))