•wefgef
|
|
« : 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.
|
|
|
|
•SpiderMan
|
|
« Răspunde #2 : Martie 10, 2010, 09:20:12 » |
|
Nu mai da idei alta data ....
|
|
|
Memorat
|
|
|
|
•andrei.finaru
Strain
Karma: 8
Deconectat
Mesaje: 26
|
|
« Răspunde #3 : Martie 10, 2010, 15:28:51 » |
|
Am si eu o observatie: nu cumva la: 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
|
|
« 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
Mesaje: 11
|
|
« 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
|
|
« 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
Mesaje: 1
|
|
« Răspunde #7 : Mai 18, 2011, 09:51:10 » |
|
q poate fi si fractie periodica?
|
|
|
Memorat
|
|
|
|
•Magnus
Client obisnuit
Karma: 0
Deconectat
Mesaje: 57
|
|
« Răspunde #8 : Mai 18, 2011, 10:06:58 » |
|
din cate am inteles eu, nu (nu se precizeaza cum citesti perioada). oricum eu am rezolvat-o doar pentru fractii neperiodice
|
|
|
Memorat
|
|
|
|
•TheNechiz
|
|
« Răspunde #9 : Iulie 28, 2012, 18:03:03 » |
|
Iua 95 p 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
|
|
« Răspunde #10 : Iulie 29, 2012, 13:33:35 » |
|
Probabil ca operatiile nu sunt optime. Incearca la impartire ceva de genul: 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
|
|
« 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
|
|
|
Memorat
|
|
|
|
•danalex97
|
|
« 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 )
|
|
« Ultima modificare: Iulie 30, 2012, 11:15:55 de către Dan Alexandru »
|
Memorat
|
|
|
|
•TheNechiz
|
|
« Răspunde #13 : Iulie 30, 2012, 11:25:18 » |
|
Ce putem face ?
|
|
|
Memorat
|
|
|
|
•Steve
Client obisnuit
Karma: 36
Deconectat
Mesaje: 72
|
|
« 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: int F (int v[]) { ......... }
|
|
« Ultima modificare: Iulie 30, 2012, 11:57:48 de către Stefan Eniceicu »
|
Memorat
|
|
|
|
•danalex97
|
|
« Răspunde #15 : Iulie 30, 2012, 12:24:55 » |
|
10x.
|
|
|
Memorat
|
|
|
|
•TheNechiz
|
|
« Răspunde #16 : Iulie 30, 2012, 18:06:50 » |
|
Mission Accomplished
|
|
« Ultima modificare: Iulie 31, 2012, 13:17:17 de către Birisan Razvan »
|
Memorat
|
|
|
|
•beldeabogdan
Strain
Karma: 0
Deconectat
Mesaje: 1
|
|
« 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
|
|
« Răspunde #18 : Decembrie 01, 2012, 07:06:06 » |
|
X % 2 e echivalent cu X & 1.
|
|
|
Memorat
|
|
|
|
•ctlin04
|
|
« 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/827557Am declarat procedurile cu inline si fara parametri locali: inline void imparte(); Hope it helps
|
|
|
Memorat
|
|
|
|
|