fbpx

Problema #621 – NumarLipsa – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă un sir cu n numere naturale. Determinați cel mai mic număr natural nenul care nu apare printre numerele date.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale.

Date de ieșire

Programul va afișa pe ecran numărul determinat X.

Restricții și precizări

  • 1 ≤ n ≤ 100
  • cele n numere citite vor fi mai mici decât 1.000.000.000

Exemplu

Intrare

5
4 2 7 6 1

Ieșire

3
#include <bits/stdc++.h>

using namespace std;
int main()
{
    int n , a[10001] , max = 0 , f[10001]={0} , cnt = 0;
    cin >> n;
    for(int i = 0  ;i < n ; ++i)
    {
        cin >> a[i];
        if(a[i]>max) max = a[i];
        f[a[i]]++;
    }
    sort(a , a+n);
    for(int i = 1 ; i <= max ; ++i)
    {
        cnt++;
        if(f[i]==0)
        {
            cout << i;
            break;
        }
    }
    if(cnt==max)cout << a[n-1]+1;
    return 0;
}
Comentarii

S-ar putea sa iti placa