Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 986 Numar4  (Citit de 4387 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« : Martie 09, 2010, 13:33:39 »

Aici puteti discuta despre problema Numar4.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
vladtarniceru
De-al casei
***

Karma: 81
Deconectat Deconectat

Mesaje: 145



Vezi Profilul
« Răspunde #1 : Martie 09, 2010, 21:15:18 »

am facut-o  Very Happy .ideea este simpla,avand in vedere ca nr de jos este format doar din 1 si 0(de fapt e sub forma 1*(10^n)),va trebui sa impartim doar la 2 si 5,deci vom folosi un algoritm de impartire pt numere mari  Very Happy Winner 1st place
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #2 : Martie 10, 2010, 09:20:12 »

Nu mai da idei alta data ....  Raised eyebrow
Memorat
andrei.finaru
Strain
*

Karma: 8
Deconectat Deconectat

Mesaje: 26



Vezi Profilul
« Răspunde #3 : Martie 10, 2010, 15:28:51 »

Am si eu o observatie: nu cumva la:
Citat
Date de ieşire: fişierul numar.out va conţine:
ar trebui "numar4.out"? Ca bietul elev roman care a fost la OJI si a retinut titlul de acolo se poate incurca.(am luat 0 pct la primul upload pe fisier de iesire lipsa)
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #4 : Martie 10, 2010, 16:17:28 »

Am modificat.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
petro
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 11



Vezi Profilul
« Răspunde #5 : August 30, 2010, 12:18:32 »

am citit solutia oficiala..de ce b-ul e format numai din 1 si 0? spre ex, q=4.23872679, a=1598, b=377. daca e numai 1 si 0, atunci ar fi a=423872679, b=100000000. diferenta e mai mare...
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #6 : August 30, 2010, 12:35:00 »

Fii atenta : daca ai sa zicem primul exemplu, noi vrem de fapt sa scriem acel numar sub forma de fractie, si sa-l simplificam pana nu se mai poate. Dupa cum ai invatat in gimnaziu la matematica transformarile , spre exemplu daca avem un numar rational 0,5 , el poate fi scris sub forma de fractie asa : 5 / 10 = 1 / 2 ; alte exemple : 0, (5) = 5/9 ; 0 , 1(5) = ( 15 - 1 ) / 90 = 14 / 90 = 7 / 45 . Noi avem in primul exemplu q = 0, 375, adica 375 / 1000. Daca o sa tot simplifici, o sa ajungi la 5 / 8. La al doilea exemplu avem q = 12,34567, adica 12 intregi si 34567 / 100000. Numaratorul o sa fie dupa introducerea intregilor in fractie : 12 * 100000 + 34567 = 1234567, si fractia q = 1234567 / 100000. Aceasta nu mai poate fi simplificata, deci acesta este rezultatul.
« Ultima modificare: August 30, 2010, 13:17:49 de către Simoiu Robert » Memorat
andreea29
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #7 : Mai 18, 2011, 09:51:10 »

q poate fi si fractie periodica?Smile
Memorat
Magnus
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 57



Vezi Profilul
« Răspunde #8 : Mai 18, 2011, 10:06:58 »

din cate am inteles eu, nu (nu se precizeaza cum citesti perioada). Very Happy
oricum eu am rezolvat-o doar pentru fractii neperiodice
Memorat
TheNechiz
De-al casei
***

Karma: 30
Deconectat Deconectat

Mesaje: 145



Vezi Profilul
« Răspunde #9 : Iulie 28, 2012, 18:03:03 »

Iua 95 p   Shocked TLE pe testul 18.

Fac simplificări cu 10,5,2.Nu știu cum aș mai putea să optimizez programul.
Vă rog , ar putea cineva să mă ajute ?



« Ultima modificare: Iulie 30, 2012, 18:12:00 de către Birisan Razvan » Memorat
danalex97
Vorbaret
****

Karma: 54
Deconectat Deconectat

Mesaje: 192



Vezi Profilul
« Răspunde #10 : Iulie 29, 2012, 13:33:35 »

Probabil ca operatiile nu sunt optime.

Incearca la impartire ceva de genul:
Cod:

void div(int A[],int Size, int B)
{
      int i, t = 0;
      for (i = Size; i > 0; i--, t %= B)
              A[i] = (t = t * 10 + A[i]) / B;
      for (; Size > 1 && !A[ Size ]; Size--);
}


Vezi sa simplifici in ordinea 10 , 5 , 2 si la impartirea cu 10 doar sa tai 0-uri.
Daca nu e asta vezi sa nu faci acelasi lucru de mai multe ori si daca lucrezi cu stringuri nu uita ca operatii gen strlen(s) au complexitate O(N).
Memorat
TheNechiz
De-al casei
***

Karma: 30
Deconectat Deconectat

Mesaje: 145



Vezi Profilul
« Răspunde #11 : Iulie 30, 2012, 09:31:16 »


Am încercat să tai doar zero-urile ,dar tot 95 de puncte iau.
Ți - am trimis un PM cu sursa , dacă poți să-mi spui și mie ce e greșit.
Mulțumesc pentru ajutor  Ok
Memorat
danalex97
Vorbaret
****

Karma: 54
Deconectat Deconectat

Mesaje: 192



Vezi Profilul
« Răspunde #12 : Iulie 30, 2012, 11:09:38 »

Hmm... Nu cred ca problema este de la sursa ta , ci timpul a fost scazut prea mult. Cu sursa veche care lua 100 iau , la fel ca tine , 95p.
Sursa mea veche facea 120ms pe testul 18 , iau acum apare depasit , desi sursa e aceeasi.

Cred ca limita de timp a fost schimbata si nu s-a updatat in enunt. Totusi eu cred ca limita ar putea fi marita putin. ( la 0.2 / 0.175 ) Ok
« Ultima modificare: Iulie 30, 2012, 11:15:55 de către Dan Alexandru » Memorat
TheNechiz
De-al casei
***

Karma: 30
Deconectat Deconectat

Mesaje: 145



Vezi Profilul
« Răspunde #13 : Iulie 30, 2012, 11:25:18 »


Ce putem face ? Confused
Memorat
Steve
Client obisnuit
**

Karma: 36
Deconectat Deconectat

Mesaje: 72



Vezi Profilul
« Răspunde #14 : Iulie 30, 2012, 11:47:08 »

Mi-am batut un pic capul, am scos toate apelurile de functii si am facut impartirile la 2 pe biti si a intrat. Incercati asa...

Ideea e ca pierzi destul de mult timp atunci cand ai o functie de genu:

Cod:
int F (int v[])
{
    .........
}
« Ultima modificare: Iulie 30, 2012, 11:57:48 de către Stefan Eniceicu » Memorat
danalex97
Vorbaret
****

Karma: 54
Deconectat Deconectat

Mesaje: 192



Vezi Profilul
« Răspunde #15 : Iulie 30, 2012, 12:24:55 »

10x.  Ok
Memorat
TheNechiz
De-al casei
***

Karma: 30
Deconectat Deconectat

Mesaje: 145



Vezi Profilul
« Răspunde #16 : Iulie 30, 2012, 18:06:50 »

Mission Accomplished Thumb up
« Ultima modificare: Iulie 31, 2012, 13:17:17 de către Birisan Razvan » Memorat
beldeabogdan
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #17 : Decembrie 01, 2012, 00:46:40 »

O rezolvare standard ia pe testul 18 in jur de 210 milisecunde.
Cum se face impartirea la 2 pe biti?
Memorat
visanr
Nu mai tace
*****

Karma: 168
Deconectat Deconectat

Mesaje: 213



Vezi Profilul
« Răspunde #18 : Decembrie 01, 2012, 07:06:06 »

X % 2 e echivalent cu X & 1.
Memorat
ctlin04
Nu mai tace
*****

Karma: 23
Deconectat Deconectat

Mesaje: 207



Vezi Profilul
« Răspunde #19 : Decembrie 02, 2012, 11:44:48 »

Eu am facut doua proceduri aparte pentru impartirea la 5 si la 2 fara operatii pe biti si a mers destul de bine http://infoarena.ro/job_detail/827557
Am declarat procedurile cu inline si fara parametri locali: inline void imparte();
Hope it helps  Smile
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines