Enunț
Un registru permite atât eliminarea vârfului, cât și eliminarea maximului. Dacă maximul apare de mai multe ori, se scoate apariția cea mai apropiată de vârf.
Cerință
Simulează operațiile: 1 x adaugă x în vârf; 2 elimină și afișează vârful; 3 afișează maximul; 4 elimină și afișează maximul, alegând apariția cea mai apropiată de vârf la egalitate.
Tip de problemă: Max Stack.
Date de intrare
q, apoi q operații.
Date de ieșire
Un rezultat pe linie pentru fiecare operație diferită de 1.
Restricții
1 ≤ q ≤ 2000; |x| ≤ 1000000000. Operațiile 2, 3 și 4 se aplică numai unei stive nevide. Există cel puțin o afișare.
Explicație
În exemplul 1, operațiile de consultare sau eliminare produc, în ordine: 4 2 4. Adăugările nu produc ieșire.
Observații
Raportată de un candidat la LinkedIn (SE, runde de programare). Adaptare Algo25: Operații numerice, departajare după poziția din stivă și limite pentru o simulare O(q²).
Sursa relatării: https://leetcode.com/discuss/post/6468398/
Exemple
2 EXEMPLEExemplul 1
Date de intrare
5
1 4
1 2
3
2
3
Date de ieșire
4
2
4
Exemplul 2
Date de intrare
2
1 -9
3
Date de ieșire
-9
Ai nevoie de un indiciu?
Descoperă doar cât îți trebuie. Indiciile nu scad punctajul.
Trimite o soluție
Se verifică autentificarea…
Deschide atelierul cu sugestii și teste locale în 4 limbaje →