•fluffy
|
|
« : Martie 08, 2004, 20:03:49 » |
|
Aici puteţi discuta despre problema Triunghi.
|
|
|
Memorat
|
|
|
|
•LordAnta
Strain
Karma: 2
Deconectat
Mesaje: 43
|
|
« Răspunde #1 : Februarie 19, 2005, 13:34:41 » |
|
Presupun ca solutia nu este unica, nu? Pentru ca pentru Exemple
triunghi.in triunghi.out 3 34 13 6 7 1 5 2
mai gasit si solutia 12 9 3 7 2 1
|
|
|
Memorat
|
Lord Anta, over and out!!!
|
|
|
•ParrAzitU
Client obisnuit
Karma: 0
Deconectat
Mesaje: 73
|
|
« Răspunde #2 : Februarie 19, 2005, 14:55:57 » |
|
Restrictii si observatii
§ 1 ≤ N ≤ 18
§ 1 ≤ S ≤ 1.000.000
§ Daca sunt posibile mai multe solutii se va afisa doar una
eu cred ca nu e unica.
|
|
|
Memorat
|
I'll be smiling as I decompose - the reaper awaits us all.
|
|
|
•LordAnta
Strain
Karma: 2
Deconectat
Mesaje: 43
|
|
« Răspunde #3 : Februarie 19, 2005, 17:02:56 » |
|
N-am mai vazut ultima conditie!!! Trebuie sa-mi iau ochelari!!!
Imi puteti da un exemplu mai complex ptr ca oricat debug dau, nu-mi dau seam unde am gresit!!!
|
|
|
Memorat
|
Lord Anta, over and out!!!
|
|
|
•mips
Strain
Karma: 1
Deconectat
Mesaje: 30
|
|
« Răspunde #4 : Aprilie 25, 2005, 18:21:54 » |
|
Va rog sa-mi spuneti cum se poate revolva problema clasica a "platii unei sume cu diferite monede fara a da rest" in afara de backtracking(asta nu se incadreaza in 0.1 secunde) .
|
|
|
Memorat
|
|
|
|
cristi8
Vizitator
|
|
« Răspunde #5 : Aprilie 25, 2005, 21:57:07 » |
|
in afara de backtracking(asta nu se incadreaza in 0.1 secunde) ba da
|
|
|
Memorat
|
|
|
|
•johny
Strain
Karma: -1
Deconectat
Mesaje: 6
|
|
« Răspunde #6 : Aprilie 27, 2005, 07:03:01 » |
|
A incercat cineva sa rezolve cu ecuatia diofantica?
Daca are cineva idee cum se poate determina o solutie particulara pt o ecuatie diofantica il rog sa scrie adresa
|
|
|
Memorat
|
|
|
|
•supernova
Strain
Karma: 1
Deconectat
Mesaje: 26
|
|
« Răspunde #7 : Iunie 14, 2005, 09:19:18 » |
|
In problema se specifica ca in fisierul de iesire vor fi scrise pe linia i cate i numere intregi strict pozitive care descriu linia i din triunghi. E ciudat ca am trimis programul meu care afisa si zerouri (cel putin pentru cele doua exemple din enunt), si am luat 100 .
|
|
|
Memorat
|
|
|
|
•domino
|
|
« Răspunde #8 : Iunie 14, 2005, 10:37:33 » |
|
In problema se specifica ca in fisierul de iesire vor fi scrise pe linia i cate i numere intregi strict pozitive care descriu linia i din triunghi. E ciudat ca am trimis programul meu care afisa si zerouri (cel putin pentru cele doua exemple din enunt), si am luat 100 . Hmm, esti sgiur de asta? M-am uitat in verificatorul la problema asta si este cam asa ... for (i = 0; i < N; i++) for (j = 0; j <= i; j++) fscanf(f, "%d", A[i] + j), Sum += A[i][j]; fclose(f); ...
deci n-ar trebui sa mearga daca tu mai afisezi si altceva in afara de i numere
|
|
|
Memorat
|
|
|
|
•supernova
Strain
Karma: 1
Deconectat
Mesaje: 26
|
|
« Răspunde #9 : Iunie 14, 2005, 10:53:45 » |
|
Nu am pus numere in plus, ma refeream la faptul ca o parte din acele numere erau 0. Deci ar trebui eventual specificat clar in enuntul problemei ca e vorba de numere pozitive (nu neaparat nenule).
|
|
|
Memorat
|
|
|
|
•domino
|
|
« Răspunde #10 : Iunie 14, 2005, 13:04:29 » |
|
Nu am pus numere in plus, ma refeream la faptul ca o parte din acele numere erau 0. Deci ar trebui eventual specificat clar in enuntul problemei ca e vorba de numere pozitive (nu neaparat nenule). Am modificat evaluatorul mai bine... voi incearca sa fac si o reevaluare
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #11 : Iulie 02, 2005, 21:23:40 » |
|
la aceasta problema... k si la ink alte cateva... primesc TLE orice as face. am trimis o sursa care arata cam asa: var f:text; n,s:longint;
begin assign(f,'triunghi.in');reset(f); read(f,n,s); close(f); end.
si primesc TLE pe toate testele. eu cred k nu se poate face citirea atunci knd datele de intrare sunt mari. si la problema numere prime patesc la fel. am trimis o sursa kre nu facea nimic si pe 4 teste am luat WA si pe celelalte 6 TLE. si la fractii... pe 2 teste merge, pe 8 TLE...
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•HeLLHeiM
Strain
Karma: -3
Deconectat
Mesaje: 15
|
|
« Răspunde #12 : Iulie 03, 2005, 00:07:21 » |
|
la aceasta problema... k si la ink alte cateva... primesc TLE orice as face. am trimis o sursa care arata cam asa: var f:text; n,s:longint;
begin assign(f,'triunghi.in');reset(f); read(f,n,s); close(f); end.
si primesc TLE pe toate testele. eu cred k nu se poate face citirea atunci knd datele de intrare sunt mari. Aceeasi citire o am si eu, dar am luat 100. Poate e de la implementare, mai gandeste-te.
|
|
|
Memorat
|
Computer programming is an artform that fights back.
|
|
|
•filipb
|
|
« Răspunde #13 : Iulie 03, 2005, 09:06:41 » |
|
Probabil evaluatorul asteapta un posibil raspuns si tine programul tau "agatat". (desi e ilogic, dar de altceva de ce ti-ar da TLE?) Oricum, o simpla citire a doua numere (oricat de mari ar fi ele :lol: ) este realizata instantaneu. Nu mai trimite surse din astea care fac doar citirea si incearca sa faci pur si simplu un algoritm. La fel si la problema "fractii" (eu faceam de ex. initializari in O(n) si nu mi-a dat TLE cum iti da tie pe for-ul cu instructiunea vida...)
bubbleSORT
[Later edit: Incearca sa citesti datele de intrare cu READLN!]
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #14 : Iulie 03, 2005, 10:06:13 » |
|
pai tocmai asta e, initial trimisesem o sursa care facea ceva si de la care ma asteptam la 100 de pct. (am citit si cu readln, to TLE primesc).
acum am trimis o sursa unde sar peste citire, iar n si s sunt constante - n=18 si s=1000000. mi se incadreaza in 0.05 sec si primesc WA. deci e clar ca citirea nu se termina niciodata si din cauza asta iau TLE. cred k o zona de memorie a calculatorului pe care se face evaluarea e stricata, si din cauza asta nu poate sa citeasca.
mi-ati putea da un test sa vad ce primesc?
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•wickedman
|
|
« Răspunde #15 : Iulie 06, 2005, 08:09:26 » |
|
|
|
|
Memorat
|
|
|
|
vladut.forum
Vizitator
|
|
« Răspunde #16 : Iulie 09, 2005, 00:50:45 » |
|
Mah, voi cum ati rezolvat problema. Eu am descoperit o ecuatie destul de simpla. ceva de genu x*p+y*q=ceva...(p,q,ceva tb sa le aflati voi), si de aici tb sa aflu x si y. Pai solutia mea si implementarea mea arata a fii corecta. Dar evaluatorul imi da numai 90 pcts. Asa ca m-am uitat mai bine, nimic gresit. Am mai trimis o sursa care afisa "imposibil", si lua 0, puncte. Sursa mea pica la testul 5(WA). <domino> Poti sa te uiti putin si sa-mi zici ce este testu 5, te rog sa mi le lasi pe privat, doar N e asa de mic (18) deci voi pute testa si manual, vreau sa vad cum se comporta sursa mea pe testu 5. (sa speram sa nu fie evalu, chiar nu este nici un test la care sa dea "imposibil"), ok ms mult <domino>. Voi ce solutii ati gasit...
|
|
|
Memorat
|
|
|
|
vladut.forum
Vizitator
|
|
« Răspunde #17 : Iulie 09, 2005, 00:53:23 » |
|
aa, complexitatea la mine e... O((S-S2)/n); uinde S2 este suma triunghiului cand baza e 1 1 1 1 ....
|
|
|
Memorat
|
|
|
|
•titusu
Strain
Karma: 4
Deconectat
Mesaje: 3
|
|
« Răspunde #18 : Ianuarie 24, 2006, 23:27:43 » |
|
Desi a trecut o juma' de an de la ultimul post la threadul asta, ce-i cu testul 5? Am gasit si eu solutia cu ecuatia diofantica, dar testul 5 da WA. Daca se poate....
|
|
|
Memorat
|
|
|
|
•APOCALYPTO
|
|
« Răspunde #19 : Iunie 25, 2009, 22:47:39 » |
|
n mie imi da killed by signal 11 sigsecv la sursa urmatoare :s1 la mn merge fara probleme pana la n=18 shi s1(am scris s1 in loc de s)= 520.000 shi ceva adik echiv uni triunghi de 18 cu baza numai din 1 shi inclusiv pentru valorile din testele de mai sus nu intzeleg de ce la primul test imi da WA shi la celealte SIGSECV cel puztin indicii par bn #include<fstream.h> ofstream g("triunghi.out"); int main() { long (*a)[20]=new long[20][20],v[20],(*b)[20]=new long[20][20]; long s; long n,i,j,k; for(i=0;i<=18;i++) {a[i][0]=1; a[i][i]=1; v[i]=0;} for(i=2;i<=18;i++) for(j=1;j<=i-1;j++) a[i][j]=a[i-1][j]+a[i-1][j-1]; ifstream f("triunghi.in"); f>>n; f>>s; i=n; for(i=0;i<=n-1;i++) for(k=1;k<=n-i;k++)
for(j=0;j<=i;j++) v[j+k-1]=v[j+k-1]+a[i][j];
f.close(); long s1=0; for(i=0;i<=n-1;i++) s1+=v[i];
long *cmax=new long[1000000],(*uz)[20]=new long[1000000][20]; for(i=0;i<=n-1;i++) uz[s1][i]=1; for(i=0;i<s1;i++) cmax[i]=-1000000; for(i=s1+1;i<=s;i++) cmax[i]=-1; for(i=s1+1;i<=s;i++) for(j=0;j<=n-1;j++) if(v[j]<=i-s1&&cmax[i-v[j]]>-1) {cmax[i]=cmax[i-v[j]]+v[i]; for(k=0;k<=n-1;k++) uz[i][k]=uz[i-v[j]][k]; uz[i][j]++; } for(k=0;k<=n-1;k++) b[n][k+1]=uz[s][k]; for(i=n-1;i>=1;i--) for(j=1;j<=i;j++) b[i][j]=b[i+1][j]+b[i+1][j+1];
for(i=1;i<=n;i++) {for(j=1;j<=i;j++) g<<b[i][j]<<" "; g<<'\n'; }
g.close();
return 0;
}
am rezolvat generand triunghiul lui pascal apoi un linia n a unui triunghi derivat din acesta retzinuta in vectorul v apoi am folosit ideea de rezolvare de la cunoscuta probleme a rucsacului 0-1 in care v[ i] reprezinta atat costul cat shi greutatea obiectului i obtzinaand astfel ultima linie a triunghiului-solutzie [Editat de moderator] Foloseste tagul [ code] cand postezi cod sursa. De asemenea pune niste spatii cand scrii v[ i] deoarece forumul interpreteaza ca vrei sa scrii text italic.
|
|
« Ultima modificare: Iunie 26, 2009, 09:32:54 de către Savin Tiberiu »
|
Memorat
|
|
|
|
•mihai_r2005
Strain
Karma: 0
Deconectat
Mesaje: 2
|
|
« Răspunde #20 : Septembrie 14, 2009, 22:26:00 » |
|
Mie imi da numai 10 pct (singurul raspuns corect e la primul test). Mi-ati putea da un test ca sa vad ce am gresit? Am "fabricat" eu niste teste mai mari decat cele din enuntul problemei si imi dadea raspuns corect.
|
|
|
Memorat
|
|
|
|
•marcelcodrea
|
|
« Răspunde #21 : Septembrie 14, 2009, 22:45:46 » |
|
Acolo unde datele de intrare nu genereaza un raspuns unic nu e foarte folositor sa iti dau teste, am postat cateva ca sa vezi ca exista o solutie in caz ca programul tau afiseaza imposibil pe ele. Cel mai util e sa faci un program care citeste din .out si din .in si verifica validitatea triunghiului cerut in .IN(dimensiunea laturii + suma elementelor). Ai putea chiar sa generezi tu date in .IN dar judecand dupa complexitatea problemei ai putea sa gasesti greseala si daca bagi teste de mana. .IN .OUT 362 324 38 302 22 16 288 14 8 8 278 10 4 4 4 270 8 2 2 2 2 263 7 1 1 1 1 1 .IN .OUT 157867 157859 8 157855 4 4 157853 2 2 2 157852 1 1 1 1
.IN .OUT
|
|
|
Memorat
|
|
|
|
•mihai_r2005
Strain
Karma: 0
Deconectat
Mesaje: 2
|
|
« Răspunde #22 : Septembrie 15, 2009, 00:20:11 » |
|
Am pus in triunghi.in ceea ce ai trimis tu si am primit raspunsuri diferite dar oricum suma nr din fisier era =S si orice numar din triunghi era egal cu suma celor doua de sub el. Daca vrei iti voi trimite sursa. Eventual vb pe messenger ca e mai direct .
|
|
|
Memorat
|
|
|
|
•Mitza444
Client obisnuit
Karma: 6
Deconectat
Mesaje: 82
|
|
« Răspunde #23 : Ianuarie 23, 2012, 19:11:30 » |
|
Buna!!!Ma puteti ajuta si pe mine cu o idee de rezolvare??Am observat ca trebuie sa descompun acea suma in n*(n+1)/2 numere ,dar nu imi dau seama cum pot afla acele numere cu propritatea din enunt...
|
|
|
Memorat
|
|
|
|
•pauldb
|
|
« Răspunde #24 : Ianuarie 23, 2012, 23:12:55 » |
|
Observatia importanta este ca de fapt conteaza doar cum alegi valorile de la baza triunghiului. Ca sa rezovli problema nu strica sa fii familiar cu Problema rucsacului si cu programarea dinamica in general.
|
|
|
Memorat
|
Am zis
|
|
|
|