307
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ât1.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