👤

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


Răspuns :

#include <iostream>
using namespace std;

int gaseste_in_sir(int v[],int n,int x){
int i,gasit=0;
for(i=0;i<n;i++){
if(v[i]==x){
gasit=1;
break;
}
}
return gasit;
}
int main(){

int n,i,x,a,b,nr_in_afara_sirului=0;
cin>>n;
int v[n];
for(i=0;i<n;i++){
cin>>v[i];
}

x=999;
while(nr_in_afara_sirului<2){
if(gaseste_in_sir(v,n,x)==0){
nr_in_afara_sirului++;

if(nr_in_afara_sirului==1){
b=x;
}
else{
a=x;
}
}
x--;
}
cout<<a<<" "<<b;
return 0;
}