fbpx

Problema #525 – Numere1 – Rezolvari PBInfo

de Mihai-Alexandru

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

Exemplu

Intrare

10
10 994 1010 999 1010 998 1005 994 996 995 

Ieșire

993 997
#include <bits/stdc++.h>

using namespace std;

int c[1000];

int main()
{

    int n;
    cin >> n;
    int x;
    for(int i = 1; i <= n; ++i){
        cin >> x;
        if(x < 1000)
            c[x] = 1;
    }

    int cnt = 0, a, b;

    for(int i = 999; cnt < 2 && i >= 100; --i)
        if(!c[i]){
            cnt++;
            if(cnt == 1)
                b = i;
            else
                a = i;
        }

    if(cnt == 2)
        cout << a << ' ' << b;
    else
        cout << "NU EXISTA";
}
Comentarii

S-ar putea sa iti placa