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ăspunsuri la întrebare
Răspuns de
1
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.
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Geografie,
9 ani în urmă
Matematică,
9 ani în urmă
for (num=9999; num >= 0; --num)
if (v[num]==0) g << num << " ";