|
Titlul: Probleme la convertirea din unsigned int in int Scris de: Dragos din Septembrie 04, 2010, 22:30:29 Salut!
Am avut recent niste dificultati la una din problemele din arhiva in care era nevoie de putine optimizari pentru a obtine 100 de puncte. Cod:
Fragmentul de mai sus nu merge(ia 0 puncte) desi se garanteaza ca p[ii] si D <(1<<31) ) In schimb declar yo ca fiind long long si fac si conversia in long long iau 95(pe pu il las int): Cod:
Vreau sa stiu in primul rand cum as putea sa fac conversia la prima bucata de cod ca sa nu mai am probleme pe viitor. Tinand cont ca iau 0 puncte e clar ca doar conversia e gresita pentru ca nici pe cazuri simple nu da bine. Multumesc anticipat pentru raspunsuri! Titlul: Răspuns: Probleme la convertirea din unsigned int in int Scris de: Pripoae Teodor Anton din Septembrie 05, 2010, 17:15:29 Cod: yo=(int)(p[ii]-D); Titlul: Răspuns: Probleme la convertirea din unsigned int in int Scris de: Dragos din Septembrie 05, 2010, 21:38:39 Cod: yo=(int)(p[ii]-D); Sa fie de la linia cu Cod: while(yo>p[left]) Adica sa nu am voie cu yo int si p[ left ] unsigned int? Titlul: Răspuns: Probleme la convertirea din unsigned int in int Scris de: Simoiu Robert din Septembrie 06, 2010, 10:37:06 Incearca asa :
Cod: while( ( unsigned ) yo > p[left] ) Titlul: Răspuns: Probleme la convertirea din unsigned int in int Scris de: Mircea Dima din Septembrie 06, 2010, 10:44:51 sau asa
Cod:
Titlul: Răspuns: Probleme la convertirea din unsigned int in int Scris de: Dragos din Septembrie 06, 2010, 15:50:24 Incearca asa : A doua varianta e buna. Ia 100 desi e oarecum de asteptat.Cod: while( ( unsigned ) yo > p[left] ) Thanks & +. Prima nu merge. Citat sau asa Merge decat daca mai pun un if:Cod:
Cod: yo=(int)p[ii]-D; Thanks & + also. LE:Se pare ca si prima a lui Robert functioneaza cu if-ul respectiv. |