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.