👤

in fisierul text numere.in sunt cel mult 9998 de numere naturale nenule, distincte. scrieti un program c/c++ eficient din punct de vedere al timpului de executie, care sa scrie in fisierul numere.out, pe o linie, in ordine descrescatoare, separate prin cate un spatiu, numerele naturale nenule de cel mult 4 cifre, care nu apar in fisierul numere.in​

Răspuns :

Răspuns:

#include <iostream>

#include <fstream>

#include <bitset>

using namespace std;

bitset<10000>v;

ifstream f("numere.in");

ofstream g("numere.out");

int num;

int main()

{

  while (f >> num)

  {

      if ( num<=9999) v[num]=1;

  }

  for (num=9999; num>=1000; --num)

   if (v[num]==0) g << num << " ";

}

Explicație:

am aplicat vector caracteristic pe biţi, care foloseşte cu mult mai puţină memorie.