din fisierul date.in se citesc cel mult 500000 numere naturale mai mici decât 1000000000. Determinaţi cele mai mari două numere cu trei cifre care nu apar printre numerele date. Daca nu se pot gasi astfel de numere se va afisa mesajul "NU EXISTA"
Răspunsuri la întrebare
#include <iostream>
#include <fstream>
using namespace std;
int main() {
bool vc[900] = {0}; //Vector caracteristic cu cele 900 de numere de trei cifre
unsigned curent;
ifstream filein("datein.txt");
while (filein >> curent) {
//Daca numarul citit are trei cifre marcheaza valaorea corespunzatoare din vectorul caracteristic ca 1
if (curent >= 100 && curent <= 999)
vc[curent - 100] = 1;
}
//Afiseaza cele mai mari doua numere care nu au aparut in lista (vc[x]!=0)
int nr_gasite = 0;
int valori_nr_maxime[2] = { 0 };
curent = 899;
while (curent >= 0 && nr_gasite < 2) {
if (vc[curent] == 0) {
valori_nr_maxime[nr_gasite++] = curent + 100;
}
curent--;
}
if (nr_gasite >= 2) {
cout << valori_nr_maxime[0] << " " << valori_nr_maxime[1];
}
else cout << "NU EXISTA";
}
