# PBinfo #2824 – Numere25 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: Darius

## Enunț

Cerința
Se dă un număr natural n și un șir de numere naturale din intervalul [1,n] ordonate crescător. Să se afișeze în ordine strict crescătoare toate numerele din  intervalul [1,n] care nu se găsesc în șirul dat. Dacă nu există asemenea numere se afișează Nu exista.

Date de intrare
Fișierul de intrare numere25.in conține pe prima linie numărul n, iar pe a doua linie șir de numere naturale din intervalul [1,n] ordonate crescător.

Date de ieșire
Fișierul de ieșire numere25.out va conține pe prima linie în ordine strict crescătoare toate numerele din  intervalul [1,n] care nu se găsesc în șirul dat. Dacă nu există asemenea numere fișierul va conține textul Nu exista.

Restricții și precizări

1 ≤ n ≤ 107;
în enunțul original, 1 ≤ n ≤ 109; aici limitele au fost micșorate, datorită dimensiunilor prea mari ale fișierelor de intrare/ieșire;
proiectați un algoritm eficient din punctul de vedere al memoriei şi al timpului de executare:
	
se recomandă evitarea utilizării tablourilor sau a altor structuri de date similare.


Exemplu:
numere25.in

10
3 4 4 8
numere25.out

1 2 5 6 7 9 10

## Cod sursă C++

```cpp
#include <iostream>
#include <fstream>
#include <cassert>
using namespace std;
ifstream fin("numere25.in");
ofstream fout("numere25.out");
int main(){
	int n , x , y, gasit = 0;
    fin >> n;
    x = 0;
    while(fin >> y)
    {
        for(int i = x + 1 ; i < y ; i ++)
            fout << i << " ", gasit = 1;
        x = y;
    }
    y = n + 1;
    for(int i = x + 1 ; i < y ; i ++)
        fout << i << " ", gasit = 1;
    if(! gasit)
        fout << "Nu exista";
    fout << "\n";
    fin.close();
    fout.close();
	return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/2824)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/2824/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-2824/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
