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.
boiustef:
am luat 90 si un raspuns gresit... nu vad până ce, de ce...
Răspunsuri la întrebare
Răspuns de
2
Răspuns:
Explicație:
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("numere25.in");
ofstream g("numere25.out");
long long n, num, a=0, i, ok=0;
int main()
{
f >> n;
while (f >> num)
{
for (i=a+1; i<num; ++i)
{g << i << " "; ok=1;}
a=num;
}
for (i=a+1; i<=n; ++i)
{g << i << " "; ok=1;}
if (ok==0) g << "Nu exista";
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Biologie,
8 ani în urmă
Limba română,
9 ani în urmă
Fizică,
9 ani în urmă
Matematică,
9 ani în urmă