Cerinţa
Se dau mai multe numere naturale cu cel mult 9
cifre fiecare. Să se determine cele mai mari două numere de 3
cifre care nu se găsesc printre numerele date.
Date de intrare
Fişierul de intrare nrlipsa.in
conţine cel mult 100000
de numere, dispuse pe mai multe linii, numerele de pe fiecare linie fiind separate prin unul sau mai multe spaţii.
Date de ieşire
Fişierul de ieşire nrlipsa.out
va conţine pe prima linie cele mai mari două numere de trei cifre care nu apar în fişierul de intrare, ordonate descrescător, separate prin exact un spaţiu.
Restricţii şi precizări
- dacă nu există două numere de trei cifre care să nu se afle în fişierul de intrare atunci se va afişa mesajul
NU
.
Exemplu
nrlipsa.in
12 2345 123 67 989 6 999 123 67 989 999
nrlipsa.out
998 997
#include <bits/stdc++.h> using namespace std; ifstream fin("nrlipsa.in"); ofstream fout("nrlipsa.out"); int main() { int f[1000001]={0}; int a=-1 , b=-1 , ok = 0 , n; fin >> n; int x; while(fin >> x) { if(x < 1000) f[x]++; } for(int i = 999 ; i >= 100 ; i--) { if(f[i]==0 && ok < 2) { if(ok==0) { a=i; } if(ok==1) { b=i; } ok++; } } if(ok==2) fout << a << ' ' << b; if(ok==0) fout << "NU"; else if(ok < 2) fout << "NU EXISTA"; return 0; }