El Joc de les Cadires Musicals: Extreme


Enviar solució

Punts: 7 (parcial)
Temps Límit: 1.0s
Límit de memòria: 64M

Autor/a:
tipus del problema
Arrays/Llistes, Strings
Categoria
Lliga de Programació FP
Llenguatges permesos
Bash, C#, C++, Haskell, Java, Kotlin, PHP, Python

cadires

En Pol ha creat una versió digital del joc de les cadires musicals per jugar amb els seus amics online. El joc funciona així: hi ha una fila de cadires numerades de l'1 fins a N, i cada jugador té assignada una cadira inicial. Quan la música para, alguns jugadors surten del joc (eliminats) i les cadires buides desapareixen, fent que tots els jugadors es reagrupin en les cadires que queden.

El procés és el següent:

  1. Tens una llista de jugadors asseguts en ordre de cadira
  2. Reben una sèrie de jugadors eliminats
  3. Cada cop que s'elimina un jugador, aquell jugador desapareix de la llista

Però a vegades hi ha "repesca": un jugador que havia estat eliminat pot tornar a entrar! Quan això passa, el jugador torna a entrar mantenint l'ordre original que tenien tots els jugadors al principi. És a dir, si originalment Anna estava entre Bernat i Carla, quan Anna torni a entrar haurà de quedar entre Bernat i Carla (si tots dos encara hi són) o en la posició que respecti l'ordre inicial.

Entrada

La primera línia indica els casos de prova a considerar.

Per cada cas de prova:

  • Primera línia: un nombre N (entre 3 i 20) indicant el nombre inicial de jugadors
  • Segona línia: N noms de jugadors separats per espais, en l'ordre inicial de les cadires
  • Tercera línia: un nombre K indicant el nombre d'operacions a fer
  • Següents K línies: cada línia pot ser:
    • OUT nom → elimina el jugador amb aquest nom
    • IN nom → afegeix el jugador a la posició que li correspon segons l'ordre original

Sortida

Per cada cas de prova, mostrar la llista final de jugadors en format estàndard de llista.

Exemple d'Entrada

3
5
Anna Bernat Carla David Emma
4
OUT Carla
OUT Anna
IN Carla
OUT David
6
Marc Laia Joel Sofia Pau Nora
5
OUT Joel
OUT Pau
IN Joel
OUT Sofia
IN Pau
4
Alex Bruno Clara Denis
4
OUT Alex
OUT Bruno
OUT Clara
IN Bruno

Exemple de Sortida

[Bernat, Carla, Emma]
[Marc, Laia, Joel, Pau, Nora]
[Bruno, Denis]

Explicació del Primer Cas

Ordre original: [Anna, Bernat, Carla, David, Emma]

Situació inicial: [Anna, Bernat, Carla, David, Emma]

  1. OUT Carla[Anna, Bernat, David, Emma]
  2. OUT Anna[Bernat, David, Emma]
  3. IN Carla[Bernat, Carla, David, Emma] (Carla va després de Bernat i abans de David segons l'ordre original)
  4. OUT David[Bernat, Carla, Emma]

Explicació del Segon Cas

Ordre original: [Marc, Laia, Joel, Sofia, Pau, Nora]

  1. OUT Joel[Marc, Laia, Sofia, Pau, Nora]
  2. OUT Pau[Marc, Laia, Sofia, Nora]
  3. IN Joel[Marc, Laia, Joel, Sofia, Nora] (Joel va entre Laia i Sofia)
  4. OUT Sofia[Marc, Laia, Joel, Nora]
  5. IN Pau[Marc, Laia, Joel, Pau, Nora] (Pau va entre Sofia i Nora segons l'ordre original, Sofia no hi és, per tant va entre Joel i Nora)

Comentaris

En aquests moments no hi ha comentaris.