Torniquet Sabadell
Enviar solució
Bash, C#, C++, Haskell, Java, Kotlin, PHP, Python
Punts:
4 (parcial)
Temps Límit:
1.0s
Límit de memòria:
64M
Autor/a:
tipus del problema
Algorítmia, Arrays/Llistes
Categoria
Llenguatges permesos
A l’institut ja no solament es vol saber qui arriba tard o no, sinó que a més, es vol controlar al personal quan entra i surt. Per fer-ho, s’instal·larà un torniquet pel qual cada alumne passarà una targeta amb el seu codi. El torniquet enregistrarà els accessos i vigilarà que no se’n faci un us incorrecte, això és, no es pot entrar dues vegades consecutives sense haver sortit abans, o generar una sortida sense haver entrat prèviament. Un alumne pot entrar i sortir les vegades que vulgui, però sempre caldrà una seqüència lògica de moviments, això es: Entra, Surt, Entra, Surt, etc ...
Entrada
La primera línia indicarà el número de casos de prova a gestionar. Per cada cas de prova:
- La primera línia tindrà dos nombres, \(N\) amb el nombre de línies del cas i \(K\) que indicarà el número d’alumnes a considerar, que serà un enter positiu entre 1 i 200
- La resta de \(N\) línies seran de l’estil
- E XXX (l’alumne de codi XXX entra a l’institut)
- S XXX (l’alumne de codi XXX surt de l’institut)
Sortida
La sortida per cada cas de prova pot ser diferent:
- Si tots els moviments del cas de prova són correctes, indicarà el número d’alumnes que hi ha dins l’institut (que han entrat però no sortit encara) i el missatge Correcte
- Si hi ha moviments incorrectes, escriurà, en una única línia:
- número d’ordre de la primera línia incorrecta detectada a la seqüència
- motiu de l’error, que pot ser SortidaSenseEntrada o EntradaDuplicada
Exemple d'Entrada
4
5 5
E 1
E 2
E 3
E 4
E 5
4 5
E 1
E 1
E 2
S 2
6 5
E 1
S 1
E 2
S 3
S 2
E 1
0 5
Exemple de Sortida
5 Correcte
2 EntradaDuplicada
4 SortidaSenseEntrada
0 Correcte
Comentaris