Problema #1884 uemm1 de pe pbinfo in c++ va rog:
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 ≤ 100000
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
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
using namespace std;
int n,i,j,v[100001],st[3][100001];
bool ok;
int main()
{
cin>>n;
for(i=1;i<=n;i++)
{
cin>>v[i];
while(v[i]>st[1][j]&&j>=1&&i>1)
{
v[st[2][j]]=v[i];
j--;
}
j++;
st[1][j]=v[i];
st[2][j]=i;
}
for(i=1;i<=j;i++)
v[st[2][i]]=-1;
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Informatică,
8 ani în urmă
Chimie,
9 ani în urmă
Fizică,
9 ani în urmă