Rezolvare PBinfo #1598

Decorative Icon Problema: Coada1 / 1598

Decorative IconAutor: Andrei

Se consideră C o coadă de numere naturale, iniţial vidă. Se definesc două tipuri de operaţii.

Operaţia 1 : push X, adaugă elementul X în coadă. Dacă X există deja în coadă, se scot toate elementele din coadă, pana la întâlnirea lui, inclusiv X.
Exemplu: C: 2 4 5 1 6 Push 5 C: 1 6 5 ( s-au scos 2, 4, 5).

Operaţia 2: query X, cere afişarea poziţiei elementului X în coada C. Dacă elementul nu există în coadă, se afişează -1.
Exemplu: C: 2 5 1 3 7 Query 1 Răspuns: 3

Cerința

Dându-se M, reprezentând numărul de operaţii şi cele M operaţii, să se răspundă la operaţiile de tip query.

Date de intrare

Fișierul de intrare coada1.in conține:

  • Pe prima linie numărul natural M;
  • Pe următoarele M linii, câte un string şi câte un număr natural, de forma tip_operaţie x, reprezentând tipul operaţiei şi numărul X.

Date de ieșire

Fișierul de ieșire coada1.out va conține:

  • Răspunsurile pentru operaţiile de tip query, câte unul pe linie.

Restricții și precizări
  • 1 ≤ M ≤ 50.000
  • 1 ≤ X ≤ 1.000
Exemplu:

coada1.in

10
push 3
push 6
push 8
push 2
query 6
push 6
query 4
push 6
push 7
query 6

coada1.out

2
-1
1

Explicație

Înaintea primei întrebări, coada arată asa: 3 6 8 2, deci 6 apare pe poziţia 2.
Înaintea celei de-a doua întrebări, coada arată asa: 8 2 6, deci 4 nu apare.
Înaintea ultimei întrebări, coada arată asa: 6 7, deci 6 apare pe poziţia 1.

Andrei Frîntu
Andrei Frîntu

Fondatorul platformei - mentor Academia

LinkedIn Instagram GitHub
© Copyright 2024 - CodulLuiAndrei.ro - Toate drepturile sunt rezervate