supermarket

Time limit: 0.4s Memory limit: 32MB Input: supermarket.in Output: supermarket.outPoints by default: 10p

La un supermarket există două case de marcat la care clienții își pot plăti cumpărăturile. Când intră în magazin, fiecare client primește un număr unic. Când aceștia vor să plătească, se așază la rând la una dintre cele două case. Clienții sunt procesați pe rând, în ordinea venirii lor.

Cerință

Scrieți un program care procesează cozile de la casele de marcat. Acest program primește NN instrucțiuni pe care trebuie să le execute. Aceste instrucțiuni pot fi de următoarele 44 tipuri:

Instrucţiune Semnificaţie
11 S-a eliberat casa de marcat numărul 11. Trebuie afișat numărul clientului care urmează la rând; dacă nu este nimeni la coadă la casa respectivă, se va afişa 1-1.
22 S-a eliberat casa de marcat numărul 22. Trebuie afișat numărul clientului care urmează la rând; dacă nu este nimeni la coadă la casa respectivă, se va afişa 1-1.
3 x3 \ x Clientul cu numărul xx se aşază la coadă la casa la care așteaptă mai puțini clienți; dacă la ambele case așteaptă același număr de clienți, atunci clientul cu numărul xx se va așeza la coadă la casa 11; trebuie afișată coada la care se așază clientul xx. Se garantează că acest client nu este deja așezat la vreun la rând.
4 x4 \ x Clientul cu numărul xx părăsește rândul la care așteaptă (se garantează că era deja la un rând); în acest caz nu trebuie afișat nimic.

Date de intrare

Fişierul de intrare supermarket.in conţine pe prima linie numărul de instrucțiuni NN. Pe fiecare dintre următoarele NN linii se află câte o instrucțiune, în forma descrisă la cerinţă.

Date de ieşire

Fişierul de ieşire supermarket.out va conţine rezultatele afişate în urma executării instrucţiunilor din fişierul de intrare, în ordinea din fişier, câte un rezultat pe o linie.

Restricții și precizări

  • 4N1054 \leq N \leq 10^5
  • 1x1061 \leq x \leq 10^6
  • Pentru teste valorând 3030 de puncte, 4N1034 \leq N \leq 10^3
  • Pentru teste valorând 3030 de puncte, nu vor exista instrucțiuni de tipul 44.
  • Un client care a părăsit la un moment dat rândul (fie în urma unei instrucţiuni de tipul 44, fie datorită faptului că a plătit la casă), se poate întoarce și se poate aşeza din nou rând (ca și cum ar fi venit prima dată).

Exemplu

supermarket.in

10
3 5
3 21
3 7
2
1
2
3 5
3 8
4 7
1

supermarket.out

1
2
1
21
5
-1
2
1
8

Explicație

Clientul 55 se aşază la rând la casa 11
Clientul 2121 se aşază la rând la casa 22
Clientul 77 se aşază la rând la casa 11
La casa 22 intră clientul 2121
La casa 11 intră clientul 55
La casa 22 nu este nimeni în așteptare
Clientul 55 se aşază la rând la casa 22
Clientul 88 se aşază la rând la casa 11
Clientul 4747 părăseşte rândul (nu se afişează nimic)
La casa 11 intră clientul 88

Log in or sign up to be able to send submissions!