infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Simoiu Robert din Februarie 15, 2013, 14:10:18



Titlul: Something Weird
Scris de: Simoiu Robert din Februarie 15, 2013, 14:10:18
Deci la pb. arbore, luam 65 si nu stiam de ce, am luat o alta sursa, am modificat-o pana am ajuns s-o fac exact ca a mea, si lua 100. Pana la urma, cu teste si teste, am aflat problema, ciudata de fel :
Cod:
int N, M, ST[MAX], DR[MAX], vec[MAX], cnt[MAX << 2], ai[MAX << 2];
Aceasta declarare ia 65, pe cand cea de 100 este asa :
Cod:
int N, M, vec[MAX], ST[MAX], DR[MAX], ai[MAX << 2], cnt[MAX << 2];
Imi spune si mie cineva care-i ideea ? Se pare ca problema este de la vectorii ai si cnt, daca ii interschimb fac figuri.
http://infoarena.ro/job_detail/879453?action=view-source - 65
http://infoarena.ro/job_detail/879452?action=view-source - 100


Titlul: Răspuns: Something Weird
Scris de: MciprianM din Februarie 15, 2013, 14:52:59
M-am grabit putin, dar eu iau doar 45p cu sursa ta: http://infoarena.ro/job_detail/879489?action=view-source


Titlul: Răspuns: Something Weird
Scris de: George Marcus din Februarie 15, 2013, 15:08:54
Poate undeva iti iese din vector si scrie peste alta zona de memorie si, deci, conteaza ordinea lor. Incearca sa aloci mai mult.


Titlul: Răspuns: Something Weird
Scris de: Andrei Grigorean din Februarie 15, 2013, 17:26:48
Poate undeva iti iese din vector si scrie peste alta zona de memorie si, deci, conteaza ordinea lor. Incearca sa aloci mai mult.

+1.

Mai mult ca sigur de la asta e.

Aint-ul trebuie sa aiba marimea egala cu cea mai mica putere a lui 2 mai mare decat 2 * MAX_N.


Titlul: Răspuns: Something Weird
Scris de: Simoiu Robert din Februarie 15, 2013, 18:26:51
Poate undeva iti iese din vector si scrie peste alta zona de memorie si, deci, conteaza ordinea lor. Incearca sa aloci mai mult.

+1.

Mai mult ca sigur de la asta e.

Aint-ul trebuie sa aiba marimea egala cu cea mai mica putere a lui 2 mai mare decat 2 * MAX_N.
Dupa cum zici tu, aint-ul trebuie sa aiba marimea egala cu 2x <= MAX_N * 2. Acel numar este de fapt 262144, cu x = 18.