👤

Cerința
Se dau n numere naturale. Determinaţi cele mai mari două numere cu trei cifre care nu apar printre numerele date.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire
Programul va afișa pe ecran numerele a b, a < b reprezentând cele două numere determinate. Dacă nu se pot găsi două astfel de numere, se va afişa mesajul NU EXISTA.

Restricții și precizări
1 ≤ n ≤ 500.000
cele n numere citite vor fi mai mici decât 1.000.000.000


Răspuns :

#include <iostream>
using namespace std;
int i,n,v[1001],x,x1,ok;
int main()
{
cin>>n;
for (i=1;i<=n;i++)
{
    cin>>x;
    if (x<1000)
        v[x]=1;
}
x=0;
x1=0; ok=0;
    for (i=999;i>=100 && !ok;i--)
    {
        if (v[i]==0 && !x)
            x=i;
        else
            if (v[i]==0 && x)
            {
                    ok=1;
                x1=i;
            }
    }
    if (!x || !x1)
        cout<<"NU EXISTA";
    else
        cout<<x1<<" "<<x;
    return 0;
}