Rezolvare completă PbInfo #1884 UEMM1

Cerința

Se dă un șir cu n elemente, numere naturale. Să se afișeze, pentru fiecare element din șir, valoarea din șir aflată după acesta și mai mare decât acesta (Următorul Element Mai Mare). Dacă o asemenea valoare nu există, se va afișa -1.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului.

Date de ieșire

Programul va afișa pe ecran cele n valori determinate, separate prin câte un spațiu.

Restricții și precizări

  • 1 ≤ n ≤ 100.000
  • elementele șirului vor fi mai mai mici decât 1.000.000

Exemplu

Intrare

5
3 4 3 5 1

Ieșire

4 5 5 -1 -1

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema UEMM1:

#include<iostream>
#include<vector>
#include<algorithm>
#include<set>
#include<cstring>
#include<cmath>
#include<cstdlib>

using namespace std;

#define NN 100001

int main()
 {
    //code
    int n  , v[NN], rez[NN];
    int s[NN], ns = 0;
    cin >> n;
    v[n + 1] = -1;
    for(int i = 1 ; i <= n ; i ++)
        cin >> v[i];
    s[ns = 1] = 1;
    for(int i = 2; i <= n ; i ++)
    {
        while(ns > 0 && v[i] > v[s[ns]])
        {
            rez[s[ns--]] = v[i];
        }
        s[++ns] = i;
    }
    while(ns > 0)
    {
        rez[s[ns--]] = -1;
    }
    for(int i = 1; i <= n ; i ++)
        cout << rez[i] << " ";
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #1884 UEMM1

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1884 UEMM1 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!