MedieC++17

Stiva cu maxim și eliminare selectivă

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 EXEMPLE

Exemplul 1

Exemplul 1 pentru „Stiva cu maxim și eliminare selectivă”. Adăugăm 4. Starea de după operație este afișată mai jos. Valoarea urmărită la acest pas: (șir gol)Exemplul 1, reprezentat vizual. Adăugăm 4. Starea de după operație este afișată mai jos.Urmărește exemplul animat sau avansează în ritmul tău.Mărește schema ↗

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
UN MIC IMPULS

Ai nevoie de un indiciu?

Descoperă doar cât îți trebuie. Indiciile nu scad punctajul.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Se verifică autentificarea…

Deschide atelierul cu sugestii și teste locale în 4 limbaje →

Un pas, apoi următorul.Înapoi sus ↑