Afişează mesaje
|
Pagini: [1]
|
8
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 110 Granita
|
: Aprilie 13, 2010, 23:19:52
|
Eu am facut quicksort si iau numa 20 Cod: int quick(int st, int dr) { int i,j,piv,aux,aux1; i = st; j = dr; piv = a[(st + dr) / 2]; while (i <= j) { while (a[ i ] < piv) ++i; while (a[ j ] > piv) --j; if (i <= j) { aux = a[ i ]; a[ i ] = a[ j ]; a[ j ] = aux; aux = b[ i ]; b[ i ] = b[ j ]; b[ j ] = aux; ++i;--j;} } if (st < j) quick(st,j); if (i < dr) quick(i,dr); } Ce as putea imbunatati la quicksortu asta?(daca ma poate ajuta cineva) Editat de moderator: Foloseste tagurile [ code ] [ /code ] cand postezi cod.
|
|
|
9
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 006 Factorial
|
: Aprilie 03, 2010, 22:08:36
|
Imi gaseste valoarea, da nu pe cea mai mica. Am pus conditia daca (f(mij) = p && mij<val) atunci {val = mij;dr=mij-1;}(asa ma gandeam sa o gasesc pe cea mai mica),si am initializat val cu 1000 la inceput, dar se blocheaza compilatorul cand fac asa. Edit: Am facut direct in main pana la urma. while (st < dr) { mij = (st + dr)/2; a = mij; ct = 0; while (a % 5 == 0) { if (a % 5 == 0) { ct++; a = a / 5; } } if (ct == p && mij < val) {val = mij; dr = mij - 1;} else if (ct < p && ct > 0) st = mij + 1; else dr = mij - 1; } Editat de moderator: Nu mai posta de mai multe ori consecutiv, editeaza-ti posturile anterioare. Foloseste tagurile [ code ] [ /code ] cand postezi cod.
|
|
|
10
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 006 Factorial
|
: Aprilie 03, 2010, 21:22:12
|
Am incercat sa rezolv cu cautare binara. Am facut o functie, in care aflu de cate ori se imparte un numar la 5, iar in programul principal folosesc cautare binara (st=0;dr=1000;mij=(st+dr)/2;).Apelez functia cu acel mij(daca f(mij) = p atunci returnez mij altfel daca f(mij)<p st = mij + 1; altfel dr = mij - 1; si imi da intotdeauna -1.nu gaseste niciodata valoarea. Este gresit rationamentul?
|
|
|
12
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 484 Numere 5
|
: Martie 24, 2010, 10:11:03
|
Am declarat o data global: char v[1000005]; int i,n,x,min,max; si am luat mle pe ultimele 4 teste. Daca le declar local, iau killed by signal pe testele 6,9,10. Am facut problema cu un vector in care retin ca vizitate elementele pe care le citesc. Trebuie gasita alta solutie ca sa iau 100?
|
|
|
15
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 479 Paritate
|
: Martie 21, 2010, 17:39:56
|
Am si eu o intrebare. :-kcum sa fac sa-mi afiseze caractere? ca imi afiseaza patratele.multumesc. L. E.: Pentru problema am folosit un vector de tip char pentru acel sir, insa nu stiu cum sal citesc sirul ca vector. Sunt mai la inceput si sper sa ma ajute cineva.  L. L. E.: M-am prins cum se face citirea Editat de admin: Nu mai posta consecutiv, editeaza-ti mesajele anterioare!
|
|
|
|