Titlul: 519 Modulo Scris de: Adrian Diaconu din Octombrie 17, 2007, 23:44:39 Aici puteţi discuta despre problema Modulo (http://infoarena.ro/problema/modulo).
Titlul: Răspuns: 519 Modulo Scris de: Ionescu Vlad din Octombrie 18, 2007, 11:58:56 Nu e cam mult o secunda la problema asta? :-'
Titlul: Răspuns: 519 Modulo Scris de: Adrian Diaconu din Octombrie 18, 2007, 16:32:14 Limita a fost micsorata la 0.1. Solutiile au fost reevaluate.
Titlul: Răspuns: 519 Modulo Scris de: Hasna Robert din Octombrie 20, 2007, 14:42:50 care e faza cu testul 7 ?. iau wa la el.
Idee : a%=c, b%=c; rez=1; for (i=1; i<=b; i++) rez=(rez*a)%c; si apoi afisez rez. am crezut ca nu imi intra in tipuri standard, am bagat si nr mari , am incercat si pe long long si cu long double( cu conversii la fiecare pass), si tot la 90 pct ajunge. b nu poate fi e sa zic sa nu imi intre deloc in for, si chiar daca ar fi fost 0 tot ar da rez bun ca ar ramane rez==1; ma scoate din mintzi :fighting:. pls help Titlul: Răspuns: 519 Modulo Scris de: HighScore din Octombrie 20, 2007, 15:11:16 pt a=4, b=4, c=4 iti afiseaza 1, iar rez e 0...deci e doar o coincidenta ca iei atat de mult, deoarece (a^b)mod(c) nici in o mie de ani nu va fi (a mod c)^(b mod c), adica principiu pe care spui tu ca te bazezi
Titlul: Răspuns: 519 Modulo Scris de: Hasna Robert din Octombrie 20, 2007, 17:07:56 stiu ca e o coincidentza, prima data cand am trimis sursa care facea pana la b mod c m-am si mirat ca am luat 70, apoi am bagat long long si am luat 90 si am crezut ca o fi bine.am lasat pana la b prima data si iau 60 pct si 4 tle. oricum algoritmul meu nu e bun. imi poti da ceva indicatii cum se rezolva?
Titlul: Răspuns: 519 Modulo Scris de: Adrian Diaconu din Octombrie 20, 2007, 19:45:46 Cea mai la indemana metoda este sa te gandesti cum poti calcula ab cunoscand ab/2. Apoi pentru calculul lui ab/2 aplici acelasi rationament.
Titlul: Răspuns: 519 Modulo Scris de: Hasna Robert din Octombrie 25, 2007, 22:26:29 Ms de ajutor.Am luat pana la urma 100 :D.
Titlul: Răspuns: 519 Modulo Scris de: Farcasanu Alexandru Ciprian din Ianuarie 04, 2008, 16:35:37 Pf...care poate sa-mi explice mai clar principiul cu care rezolv problema asta...ca nu inteleg...
Titlul: Răspuns: 519 Modulo Scris de: Airinei Adrian din Ianuarie 04, 2008, 16:50:40 Exact cum a spus Ditzone mai sus. Vrei sa calculezi ab, daca b este impar ab=ab-1*a, altfel ab=ab/2*ab/2. Din cauza ca b`ul se tot imparte la 2 complexitatea e logaritmica.
Titlul: Răspuns: 519 Modulo Scris de: Tabara Mihai din Ianuarie 04, 2008, 19:48:59 Pf...care poate sa-mi explice mai clar principiul cu care rezolv problema asta...ca nu inteleg... si sa nu uiti sa faci % C la fiecare pas pentru ca (A*B) % C = (A%C)*(B%C) :thumbup:Titlul: Răspuns: 519 Modulo Scris de: Stefan Istrate din Ianuarie 04, 2008, 21:07:15 Citat si sa nu uiti sa faci % C la fiecare pas pentru ca (A*B) % C = (A%C)*(B%C) :thumbup: (A*B)%C = ((A%C)*(B%C))%C Titlul: Răspuns: 519 Modulo Scris de: Tabara Mihai din Ianuarie 04, 2008, 21:10:02 Citat si sa nu uiti sa faci % C la fiecare pas pentru ca (A*B) % C = (A%C)*(B%C) :thumbup: (A*B)%C = ((A%C)*(B%C))%C Titlul: Răspuns: 519 Modulo Scris de: Danci Emanuel Sebastian din Ianuarie 11, 2008, 20:54:50 nu stiu ce are...am facut problema in cel mai simplu mod...am ridicat pe A la puterea B si apoi am facut modulo...si iau o pct :readthis:
pls..help Titlul: Răspuns: 519 Modulo Scris de: Florian Marcu din Ianuarie 11, 2008, 21:09:24 Daca mai intai calculezi A^B, si apoi, la sfarsit faci modulo, sa stii ca sigur nu iti va da corect. Gandeste-te la limitele lui A si B, si, apoi, gandeste-te pe ce tip de date intra un numar (cica enorm de mare) care e A^B? Ideea e sa faci modulo la fiecare pas [probabil ca ai rez=rez*A, modifica cu rez=(rez*A)%C ). Oricum, solutia asta nu iti aduce punctajul maxim. Trebuie sa faci in O(log(B)). Vezi ce s-a scris pe topicul asta. :ok:
Titlul: Răspuns: 519 Modulo Scris de: Robert Hangu din Februarie 03, 2008, 12:31:06 este necesar lucrul cu numere mari? vad ca poate avea multe cifre rezultatul.
Titlul: Răspuns: 519 Modulo Scris de: Bondane Cosmin din Februarie 03, 2008, 12:36:28 Se poate fara numere mari.
Titlul: Răspuns: 519 Modulo Scris de: Robert Hangu din Februarie 03, 2008, 15:39:46 da, m-am prins :aha: restul este intotdeauna mai mic decat numarul la care se imparte, adica mai mic de 50.000
Titlul: Răspuns: 519 Modulo Scris de: HoriaC din Februarie 26, 2008, 19:00:16 Imi zice si mie cineva ce e gresit la pb....iau o p. :'(
Titlul: Răspuns: 519 Modulo Scris de: Adrian Diaconu din Februarie 26, 2008, 19:11:06 Dupa cum iti zice si evaluatorul ai o eroare de compilare. Tu nu iti testezi problemele pe calculatorul tau ?
Dupa declaratia p:longint pune ; Titlul: Răspuns: 519 Modulo Scris de: Pripoae Teodor Anton din Februarie 26, 2008, 19:14:03 Tu te astepti ca a la puterea b sa iti intre in longint? macar pune si tu in64 (parca asta e echivalentul lui long long in pascal) da oricum nu cred ca iti ia macar un test :-'
Cod: for i:=1 to b do Titlul: Răspuns: 519 Modulo Scris de: HoriaC din Februarie 26, 2008, 19:42:43 Mi-au mers toate testele...aloooo...da..nu vrea...si ce vrei sa-mi zici tu acolo cu longu'?
Titlul: Răspuns: 519 Modulo Scris de: Pripoae Teodor Anton din Februarie 26, 2008, 19:47:34 ce sa vrea? din cate vad ai eroare de compilare...:P
Titlul: Răspuns: 519 Modulo Scris de: HoriaC din Februarie 26, 2008, 19:49:35 ce eroare...mie-mi merge
:-s Titlul: Răspuns: 519 Modulo Scris de: Pripoae Teodor Anton din Februarie 26, 2008, 19:52:30 http://infoarena.ro/monitor?user=HoriaClement
eu vad ca pe problema modulo ultimele 3 evaluari au eroare de compilare Titlul: Răspuns: 519 Modulo Scris de: Andrei Grigorean din Februarie 26, 2008, 20:12:45 Fii mai coerent in posturi ca nu esti ceausescu la balcon sa ne iei cu alooo. Eventual citeste documentatia, uita-te in evaluator ca sa vezi ce erori ai, compileaza cu altceva, nu cu Borland, si apoi posteaza sa vedem daca e vreo diferenta.
Titlul: Răspuns: 519 Modulo Scris de: Adrian Diaconu din Februarie 26, 2008, 22:21:29 Si eventual asculta si sfaturile care ti se dau.
Titlul: Răspuns: 519 Modulo Scris de: Andrici Cezar din Martie 16, 2008, 18:52:12 am neovie de ajutor am citit tot ce sa scris pe acest topic si n u imi iese ... de ce??? nu stiu sa ma ajute si pe mn cineva cca nu mai suport sa iau 0 puncte :readthis: ](*,) :fighting:
Titlul: Răspuns: 519 Modulo Scris de: Adrian Diaconu din Martie 16, 2008, 19:37:47 Cateva observatii:
* tu aici citesti doar a Cod: f>>a,b,c; Cod: f>>a>>b>>c; * in cadrul acestui for tu nu faci nimic pentru ca ai pus ; intre for si instructiune, deci la tine mereu m = a; Cod: for (i=1;i<=b;i++); * Complexitatea ta este O(b) care o sa iasa din timp in momentul in care intructiunea din acel for nu va mai fi vida. Incearca sa te uiti peste Problema asta (http://infoarena.ro/problema/lgput) pentru a obtine o complexitate O(log B). Titlul: Răspuns: 519 Modulo Scris de: Andrici Cezar din Martie 19, 2008, 16:11:03 mersi amreusit sa iau 100 :winner1:
Titlul: Răspuns: 519 Modulo Scris de: Anonim din Aprilie 09, 2008, 21:16:17 Eu am facut acelasi algoritm ca la ridicare la putere in timp logaritmic si dupaia am afisat sol%q si iau incorect pe toate :(
Titlul: Răspuns: 519 Modulo Scris de: Savin Tiberiu din Aprilie 09, 2008, 21:20:33 numarul A^B s-ar putea sa fie putin cam mare, nu crezi ca iti depaseste tipul de date care il folosesti, oricare ar fi acela.
Titlul: Răspuns: 519 Modulo Scris de: Anonim din Aprilie 09, 2008, 21:45:29 Gata , am rezolvat problema asta era mersi !
Titlul: Răspuns: 519 Modulo Scris de: cont cu nume gresit sau fals din Mai 07, 2009, 17:23:06 Cod: #include <stdio.h> Titlul: Răspuns: 519 Modulo Scris de: Pripoae Teodor Anton din Mai 07, 2009, 18:24:44 Din cate imi aduc aminte, rezultatul trebuia tinut pe long long.
Titlul: Răspuns: 519 Modulo Scris de: cont cu nume gresit sau fals din Mai 07, 2009, 20:11:41 ms mult
a mers :winner1: Titlul: Răspuns: 519 Modulo Scris de: Antoche Ioana Alexandra din Mai 14, 2009, 13:28:31 LA fiecare reapelare de functie am facut modulul...si totusi pe ultimele 2 teste iau WA...
if (p==0) return 1; if (p%2) return (n%m)*putere((n%m)*(n%m),p/2)%m; return putere((n%m)*(n%m),p/2)%m; unde n=a, p=b, m=c unde gresesc? Titlul: Răspuns: 519 Modulo Scris de: Carmen Popescu din Mai 14, 2009, 13:54:58 încearca ca în loc de
ab = (a*a)b/2 pentru b par să foloseşti ab = ab/2 * ab/2 evident pe ab/2 îl calculezi o singură dată şi îl memorezi... cel puţin la mine a mers :) Titlul: Răspuns: 519 Modulo Scris de: Antoche Ioana Alexandra din Mai 15, 2009, 10:54:00 ok, mersi mult! :)
Titlul: Răspuns: 519 Modulo Scris de: A Cosmina - vechi din Iulie 23, 2009, 22:06:10 Am creat o functie.
Cod: long long int put(long int a,long int b,long int c) Iau 0 puncte pe rezolvarea mea. Ce as putea optimiza, am citit topicul si am aplicat ceea ce am gasit. What's the problem? :-s Titlul: Răspuns: 519 Modulo Scris de: Mihai Calancea din Iulie 23, 2009, 22:18:02 Am creat o functie. Cod: long long int put(long int a,long int b,long int c) Iau 0 puncte pe rezolvarea mea. Ce as putea optimiza, am citit topicul si am aplicat ceea ce am gasit. What's the problem? :-s Cod: if (b%2!=0) aux=pow(a,b-1)*a; pow-ul e problema. Titlul: Răspuns: 519 Modulo Scris de: A Cosmina - vechi din Iulie 23, 2009, 22:27:37 Sa incerc intr-un for ? :-k
Edit: Asa? Cod: long long int put(long int a,long int b,long int c) Sau exista o metoda mai buna? Titlul: Răspuns: 519 Modulo Scris de: Mihai Calancea din Iulie 23, 2009, 22:52:40 Nu , mai . B-ul e pana in 1 << 32 pow ( a , b/2 ) e urias , degeaba ai facut functia aia daca folosesti pow . Ideea e sa fie recursiva ( desi nu neaparat ) si sa scapi de problema asta. Uita-te pe ridicare la putere in timp logaritmic , ai si surse acolo . Si mai uita-te si pe restul topicului... Titlul: Răspuns: 519 Modulo Scris de: A Cosmina - vechi din Iulie 23, 2009, 23:05:02 Multumesc mult pentru ajutor, a iesit ! \:D/
Titlul: Răspuns: 519 Modulo Scris de: irimias robert din Iulie 21, 2010, 18:47:57 doar ca fapt divers as intreba de ce solutia asta ia 90 pct cu TLE pe testul 9?
Cod: cv=a; sper ca nu ajut prea mult cu codu asta, dar daca da rog un admin sa-l stearga Titlul: Răspuns: 519 Modulo Scris de: Paul-Dan Baltescu din Iulie 21, 2010, 20:43:58 Daca b > 2^30, atunci i-ul ar ajunge 31, dar 2^31 iese din int si se face overflow.
Titlul: Răspuns: 519 Modulo Scris de: irimias robert din Iulie 22, 2010, 12:16:38 a' da chiar ](*,), mersi
ar fi trebuit sa pun unsigned int32 ca sa intre Titlul: Răspuns: 519 Modulo Scris de: Laurentiu Ion din Martie 01, 2011, 11:21:55 dupa lupte seculare :weightlift: am reusit sa imi dau seama de ce luam numai 90p, pt ca declaram variabilele "register unsigned long long int"
putin ciudat, dupa ce am sters "register" am luat 100 :winner1: sunt curios de ce :-k Titlul: Răspuns: 519 Modulo Scris de: Alex Ovidiu Nitu din August 31, 2011, 16:37:58 sursa mea ia 90 de puncte (iau WA pe testul 7 ) ](*,).
imi puteti spune ce e gresit aici: Cod: p=1; Titlul: Răspuns: 519 Modulo Scris de: George Marcus din August 31, 2011, 16:56:50 Verifica posturile anterioare.
pt a=4, b=4, c=4 iti afiseaza 1, iar rez e 0...deci e doar o coincidenta ca iei atat de mult, deoarece (a^b)mod(c) nici in o mie de ani nu va fi (a mod c)^(b mod c), adica principiu pe care spui tu ca te bazezi Titlul: Răspuns: 519 Modulo Scris de: cont cu nume gresit sau fals din August 31, 2011, 17:01:08 pe sursa asta iei 90?? cred ca glumesti. :eyebrow:
in primul rand: teorema lui Fermat este ap-1=1(modulo p) (a nedivizibil cu p) in al doilea rand: teorema este valabila numai pentru p prim asa ca intrebarea este cum de iei 90. pe testul 2 3 3, sursa ta da 1, desi raspunsul este 2. problema se poate rezolva prin ridicare la putere in timp logaritmic (http://infoarena.ro/problema/lgput) dar avand in vedere dimensiunile mici ale lui c o idee ar fi sa vezi cand apare un ciclu in resturi in O(c) si de aici tot in O(c) sa gasesti raspunsul l.e.: scuze, nu am vazut postul lui George Titlul: Răspuns: 519 Modulo Scris de: FII Florea Toma Eduard din Decembrie 30, 2011, 22:21:51 Am o micuta prooblema:am rezolvat cerinta utilizand ridicarea la putere in timp logaritmic.Cu toate astea iau tle pe testul 9 http://infoarena.ro/job_detail/654803 .Mentionez ca am pus unsigned long long peste tot.Care ar putea fii baiul ??? ?
Titlul: Răspuns: 519 Modulo Scris de: Stefan Teodorescu din Ianuarie 22, 2012, 10:07:04 si eu folosesc ridicarea la putere in timp logaritmic (cu optimizare pe biti) :-' si iau TLE pe testul 9... ceva idei? :D ](*,)
Titlul: Răspuns: 519 Modulo Scris de: Dospra Cristian din Mai 17, 2013, 09:14:41 Cod: fscanf (f,"%d%d%d",&a,&b,&c); iau WA pe testele 7 si 10. imi poate spune cineva unde gresesc sau ce uit va rog? :) Titlul: Răspuns: 519 Modulo Scris de: Muntea Andrei din Februarie 28, 2014, 08:12:27 Si eu luam WA pe testul 7, la mine era din cauza ca le declarasem variabilele de longint si nu de int64. Cred ca in C++, int 64 este echivalentul la unsigned long long...poti incerca si vezi ce iti da
Titlul: Răspuns: 519 Modulo Scris de: Andrei Pirjol Comanescu din Septembrie 23, 2017, 11:56:30 Problema destul de easy,dar testul 9 e cam hard core. 90 puncte :harhar: si :winner2:
Titlul: Răspuns: 519 Modulo Scris de: ciobanu andrei din Septembrie 23, 2017, 13:01:46 Imi place :D
Titlul: Răspuns: 519 Modulo Scris de: Paul Colta din Iunie 15, 2019, 08:17:05 Asta e Exponentiere rapida(in timp logaritmic) Gasiti indicatii pe arhiva educationala. https://www.infoarena.ro/problema/lgput (https://www.infoarena.ro/problema/lgput)
|