Afişează mesaje
|
Pagini: 1 ... 3 4 [5] 6 7 ... 20
|
101
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 046 Text
|
: Aprilie 04, 2008, 17:52:07
|
Nu stiam ca '\0' este pana la sfarsitul fisierului:) Multumesc inca o data...am mai invatat ceva;))
cred ca m-am exprimat eu prost. EOF este end of file, dar tu ai scris 'EOF '. intre ' ' se pune un sigur caracter in c/c++. iei 100 si daca scrii in.getline(v,1050000,EOF); '\0' marcheaza sfarsitul unui sir de caractere. daca scrii codul urmator char s[10]; s[0] = '1'; s[1] = '2';
si te uiti la pozitia s[2], o sa vezi ca s[2] = '\0'. am zis sa folosesti '\0' pt ca este un caracter care nu apare niciodata in fisier. imi cer scuze ca te-am bulversat
|
|
|
102
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 046 Text
|
: Aprilie 04, 2008, 16:38:49
|
@marius: citeste cu atentie enuntul. "intr-o" sunt 2 cuvinte. "...un cuvant fiind definit ca o secventa continua maximala de caractere ale alfabetului englez ('a' .. 'z' , 'A' .. 'Z') @cosmin: in.getline(v,1050000,'EOF'); 'EOF' nu este end of file. foloseste functie pentru citire (in.get) citire sau foloseste (in loc de 'EOF') un caracter care nu apare niciodata (spre exemplu '\0')
|
|
|
109
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 560 Abc2
|
: Aprilie 02, 2008, 23:20:47
|
Poti sa scrii cuvintele in baza 3, sortezi sirul care iti rezulta si apoi cauti binar.
mie nu mi-a intrat asa... eu fac hash pe dictionar, si pentru un cuvant atribui doua valori : hashul cu functia lui Mircea (aia pe care nu o tineai tu minte) si reprezentarea cuvantului in baza 3. daca am o coliziune cresc prima valoare pana cand dau peste un numar nefolosit sau pana cand dau peste un numar folosit, dar care retine cuvinte cu aceeasi reprezentare in baza 3.
|
|
|
112
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 665 Colaj
|
: Aprilie 02, 2008, 14:40:48
|
normalizezi pe componente (intai abscisele, apoi ordonatele). sortezi abscisele si construiesti vectorul new_coord in care retii noile abscise ale punctelor. am ajuns la pasul i. daca abscisa i-1 si abscisa i sunt egale atunci exista o sansa ca dreptunghiurile deservite de acestea sa se intersecteze, deci in matricea ta ar trebui sa apara ca o zona continua. prin urmare le vei atribui coordonate consecuvite (new_coord[ i ] = new_coord[i-1]+1). in caz contrar, cele doua dreptunghiuri nu se vor intersecta niciodata si trebuie sa evidentiezi acest lucru in matricea ta, despartindu-le printr-o linie, deci new_coord[ i ] = new_coord[i-1]+2. analog pentru ordonate. daca folosesti o matrice de 200x200 de tip char ar trebui sa nu ai probleme cu memoria. nu am implementat acest lucru sa vad ca merge, dar pare ok. imi cer scuze anticipat, daca am omis vreun caz.
|
|
|
114
|
infoarena - concursuri, probleme, evaluator, articole / Concursuri / Răspuns: Grigore Moisil
|
: Aprilie 02, 2008, 10:39:12
|
Si studenti sunt invitati cu pile de profesori ?!?!?! Tu la cine ai avut pile ?(dacanu sunt prea indiscret) anu asta nu vei fi in comisie la grigore moisil studentii (si profesorii) care sunt in comisii la diverse concursuri au drept "pile" rezultate foarte bune la olimpiadele nationale si internationale sau rezultate remarcabile in cercetare. nu cred ca exista alte criterii decat cele strict profesionale (sau, cel putin, eu nu am cunostinta)
|
|
|
116
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 665 Colaj
|
: Aprilie 02, 2008, 10:31:24
|
sa zicem ca ai niste puncte pe axa Ox, coordonatele absciselor fiind intre 1 miliard si 2 miliarde. daca in algoritmul tau nu folosesti nicaieri valorile coordonatelor, ci doar ordinea lor, poti sa faci urmatoarea preprocesare: sortezi punctele crescator si asociezi fiecaruia pozitia lui in sortare. se observa usor ca aceasta renumerotare pastreaza relatiile ordinea intre puncte.
de exemplu ai punctele: 1234567890, 1000100123, 1000000000 si 2000000000. ordonate crescator sirul devine: 1000000000, 1000100123, 1234567890 si 2000000000. vom renumerota sirul: 1 2 3 si 4.
|
|
|
118
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 609 Ecuatie
|
: Martie 31, 2008, 09:12:16
|
cum A, B si C sunt intregi rezulta ca si delta este intreg, deci radical(delta) poate sa fie natural, irational sau complex. daca radical(delta) este intreg (adica delta este patrat perfect) atunci x1, x2 sunt rationale. daca radical(delta) este irational x1, x2 sunt irationale, iar daca radical(delta) este complex atunci x1, x2 sunt complexe
|
|
|
119
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 484 Numere 5
|
: Martie 30, 2008, 20:20:42
|
da. poti sa calculezi memoria inmultind dimensiunea fiecarui tablou cu marimea tipului de date al tabloului si adunand rezultatele [...] aici gasesti o lista cu dimensiunile tipurilor de date. o variabila 'long long' are 8 bytes. te-ai uitat peste ce ti-am scris eu ieri? limita de memorie este 640KB si tu ai declarat mult mai mult, de aceea iei MLE. cred ca ai inceput sa-ti creezi un obicei prost, intreband de fiecare data cand nu iti iese ceva. incearca sa debughezi sursele, sa cauti singur greselile, pentru ca altfel nu o sa inveti mai nimic... daca nu iese, citesteste hinuturile de pe forum si daca nici atunci nu iese, consulta solutiile oficiale. intreaba de o problema de-abia dupa ce te-ai chinuit vreo 2-3 zile la ea. nu vreau sa sune ca un repros, ci ca un sfat, si nici nu vreau sa te descurajez in a pune intrebari. sunt convins ca prin munca, vei gasi raspunsul la multe probleme.
|
|
|
120
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 479 Paritate
|
: Martie 30, 2008, 20:06:56
|
functia get 'sare' peste '\n'. am tot incercat sa schimb lucruri "dubioase" din sursa ta... nu imi dau seama din ce cauza iei 'incorect', dar am o observatie: if(k==6)y=y+(1*(2*2*2*2*2*2)); else if(k==5) y=y+(1*(2*2*2*2*2)); else if(k==4) y=y+(1*(2*2*2*2)); else if(k==3) y=y+(1*(2*2*2)); else if(k==2) y=y+(1*(2*2)); else if(k==1) y=y+(1*2); else y=y+1; poate fi rescrisa ca Incearca sa rescrii sursa de la 0. eu asa fac cand nu ma prind de buguri
|
|
|
121
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 481 Flori
|
: Martie 30, 2008, 17:34:25
|
majoritatea au facut-o asa pt ca incapea fara probleme....dc sa te chinui sa gasesti alta rezolvare cand incape si cu o matrice!
scopul rezolvarii problemelor din arhiva infoarena este antrenamentul. nu este o idee buna spunand ca "merge si asa". evident, daca "merge si asa" in concurs, atunci nu te mai complici, dar pe infoarena ai tot timpul din lume
|
|
|
|