Cerința
Se dau n - 1 numere naturale distincte de la 1 la n. Să se gaseasca numărul lipsă.
Date de intrare
Fișierul de intrare lipsa.in conține pe prima linie numărul n, iar pe a doua linie n - 1 numere naturale separate prin spații.
Date de ieșire
Fișierul de ieșire lipsa.out va conține pe prima linie numărul căutat.
Restricții și precizări
2 ≤ n ≤ 1.000.000
Exemplu
lipsa.in
5
5 3 1 2
lipsa.out
4
Am rezolvat problema dar am obtinut 60 pct din cauza erorii Caught fatal signal 11.Cum o pot rezolva?
#include
using namespace std;
ifstream fin("lipsa.in");
ofstream fout("lipsa.out");
int i,n,a,j,fr[100005];
int main()
{fin>>n;
for(i=1;i<=n-1;i++){
fin>>a;
fr[a]=1;}
for(i=1;i<=n;i++)
if(fr[i]==0)
fout << i;
return 0;
}
artur99:
Ești sigură că a-ul e tot timpul mai mic decât 100005?
Răspunsuri la întrebare
Răspuns de
0
primesti acea eroare deoarece iese din vector, problema spune pana-ntr-un milion (1000000), pe cand vectorul tau e de 100 de mii (100005). vectorul mai mare si nu mai prinesti acea problema ; de asemenea pwntru ca tu folosesti variabila fr doar pentru 1 respectiv 0 ( true /false ) ti-as recomanda bool, acesta este un tip de date special pentru asemenea situatii te ajura la memorie deoarece un int ocupa 16/32 de biti, pe cand un bool doar 1 bit.
sper ca te ajuta; daca mai ai intrebari, nu ezita sa-ntrebi; bafta. :)
sper ca te ajuta; daca mai ai intrebari, nu ezita sa-ntrebi; bafta. :)
Alte întrebări interesante
Biologie,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă