# PBinfo #1884 – UEMM1 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

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

## Cod sursă C++

```cpp
#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;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/1884)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/1884/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-1884/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
