•wefgef
|
|
« : Octombrie 17, 2011, 15:57:22 » |
|
Aici puteţi discuta despre problema Crescator.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•S7012MY
|
|
« Răspunde #1 : Octombrie 20, 2011, 16:56:37 » |
|
o mica greseala : numere naturale intregi
|
|
|
Memorat
|
|
|
|
•informatician28
Strain
Karma: 6
Deconectat
Mesaje: 27
|
|
« Răspunde #2 : Noiembrie 10, 2011, 22:22:31 » |
|
Nu cumva cea mai lunga secventa crescatoare este 1 2 4 5 ?
|
|
|
Memorat
|
|
|
|
•informatician28
Strain
Karma: 6
Deconectat
Mesaje: 27
|
|
« Răspunde #3 : Noiembrie 10, 2011, 22:27:56 » |
|
Scuze, am facut o mica confuzie, m-am lamurit!
|
|
|
Memorat
|
|
|
|
•VisuianMihai
|
|
« Răspunde #4 : Ianuarie 22, 2012, 17:22:32 » |
|
ce au special primele 3 teste? Iau incorect doar pe ele
|
|
|
Memorat
|
|
|
|
•TheNechiz
|
|
« Răspunde #5 : Iunie 28, 2012, 11:54:15 » |
|
Nu sunt sigur dacă am înțeles problema. Pentru: In: Out: Cele 21 de secvențe: 1 12 123 1234 12345 2 23 234 2345 23456 3 34 345 3456 4 45 456 5 56 6 ? În fiecare șir sunt cel puțin n secvențe crescătoare? in: out: in: out: ?
|
|
« Ultima modificare: Iunie 28, 2012, 15:23:51 de către Birisan Razvan »
|
Memorat
|
|
|
|
•Schumi
Client obisnuit
Karma: 36
Deconectat
Mesaje: 74
|
|
« Răspunde #6 : Iunie 28, 2012, 16:09:48 » |
|
Da, ai minim n secvente crescatoare. E corect ce iti da pe acele teste.
|
|
|
Memorat
|
|
|
|
•darkseeker
|
|
« Răspunde #7 : Iunie 28, 2012, 16:50:45 » |
|
In codul tau rezultatul intermediar (l * l) si rezultatul final poate depasi tipul int. Incearca sa folosesti long long.
|
|
|
Memorat
|
|
|
|
•TheNechiz
|
|
« Răspunde #8 : Iunie 29, 2012, 12:23:41 » |
|
Nu era asta . Sigur greșeala e la algoritm,dar nu găsesc niciun test pentru care să nu meargă.Mă puteți ajuta?
|
|
|
Memorat
|
|
|
|
•Schumi
Client obisnuit
Karma: 36
Deconectat
Mesaje: 74
|
|
« Răspunde #9 : Iunie 29, 2012, 12:52:15 » |
|
Pe testul iti pica solutia. Raspunsul e 20 4, iar tie iti da 19 4.
|
|
|
Memorat
|
|
|
|
•TheNechiz
|
|
« Răspunde #10 : Iunie 29, 2012, 15:01:08 » |
|
" 4 4 " este o secvență crescătoare? Am făcut o modificare și pentru testul tău obțin: Dar tot iau 0 puncte.Mai poți să-mi dai un test?
|
|
« Ultima modificare: Iunie 29, 2012, 17:18:04 de către Birisan Razvan »
|
Memorat
|
|
|
|
•Schumi
Client obisnuit
Karma: 36
Deconectat
Mesaje: 74
|
|
« Răspunde #11 : Iunie 30, 2012, 22:34:51 » |
|
Algoritmul e bun. Aparent problema vine de la afisare. Tu dai enter dupa ce afisezi prima valoare si dupa o afisezi pe a doua. Trebuie sa afisezi cum arata si exemplul, adica sa pui spatiu intre cele doua valori. E aiurea ca se intampla asta. Ar trebui facut un eval pentru problema asta ca sa nu se mai intample chestii de genul.
|
|
|
Memorat
|
|
|
|
•TheNechiz
|
|
« Răspunde #12 : Iunie 30, 2012, 22:37:16 » |
|
Nu pot să cred că am greșit asta. Mulțumesc pentru ajutor.
|
|
« Ultima modificare: Iulie 01, 2012, 07:57:00 de către Birisan Razvan »
|
Memorat
|
|
|
|
•Schumi
Client obisnuit
Karma: 36
Deconectat
Mesaje: 74
|
|
« Răspunde #13 : Iunie 30, 2012, 22:40:45 » |
|
In enunt nu e preciat cum sa le afisezi, iar de obicei nu conteaza cum le afisezi atata timp cat sunt valori intregi. LE: Gata, s-a modificat enuntul.
|
|
|
Memorat
|
|
|
|
•Sapientia
Strain
Karma: 0
Deconectat
Mesaje: 29
|
|
« Răspunde #14 : Aprilie 09, 2013, 10:34:24 » |
|
Cod: #include <iostream> #include <fstream> using namespace std; ifstream f("crescator.in"); ofstream g("crescator.out"); int main() { int n,v[100000],i,max=1,s,j,nr; bool ok; f>>n; for(i=1; i<=n; i++) f>>v; f.close(); s=n; for(i=1; i<=n-1; i++) { j=i;ok=1;nr=0; do { j++; if (v[j]>v[j-1]) { s++; nr++;} else ok=0; if (nr>max) max=nr; } while (ok); } if (max>1) max++; g<<s<<" "<<max; g.close(); return 0; } Obtin doar 40 de puncte..complexitatea e cu mult mai mica decat O(nxn).O mica idee cineva?
|
|
|
Memorat
|
|
|
|
•SebiSebi
|
|
« Răspunde #15 : Aprilie 09, 2013, 11:51:44 » |
|
Complexitatea e O(n*n). Gandeste-te ce se intampla cand ai sirul 1,2,3, ... ,n-1,n.
|
|
|
Memorat
|
|
|
|
•Sapientia
Strain
Karma: 0
Deconectat
Mesaje: 29
|
|
« Răspunde #16 : Aprilie 09, 2013, 12:12:00 » |
|
Si cum as putea optimiza algoritmul?
|
|
|
Memorat
|
|
|
|
•TheNechiz
|
|
« Răspunde #17 : Aprilie 09, 2013, 13:04:50 » |
|
Cu putina matematica Complexitatea e O(n*n). Gandeste-te ce se intampla cand ai sirul 1,2,3, ... ,n-1,n.
|
|
|
Memorat
|
|
|
|
•BLz0r
Strain
Karma: -14
Deconectat
Mesaje: 35
|
|
« Răspunde #18 : Mai 15, 2013, 10:25:01 » |
|
Imi da WA pe ultimul test, cineva vreo idee va rog?
|
|
|
Memorat
|
|
|
|
•otniel
Strain
Karma: -13
Deconectat
Mesaje: 49
|
|
« Răspunde #19 : Septembrie 14, 2013, 13:33:20 » |
|
cum pot sa optimizez problema ca nici cum nu imi dau seama? #include<iostream> using namespace std; #include<stdio.h> FILE *f,*g; long n,i,j,nr,lungime,maxim=1; long a[100001]; int main() { f=fopen("crescator.in","r"); g=fopen("crescator.out","w"); fscanf(f,"%ld\n",&n); nr=n; for(i=1;i<=n;i++) fscanf(f,"%ld",&a); for(i=1;i<=n;i++) {lungime=1; for(j=i+1;j<=n;j++) if(a[j]>a[j-1]) {nr++; lungime++;} else break; if(j==n) i=n; if(lungime>maxim) maxim=lungime; }
fprintf(g,"%d %d",nr,maxim); }
|
|
|
Memorat
|
|
|
|
•AlexandruValeanu
|
|
« Răspunde #20 : Septembrie 14, 2013, 13:45:05 » |
|
Nu prea ai ce optimiza socotind faptul ca tu ai o solutie de complexitate O(N^2), ce in aceasta problema nu poate lua 100p. Incearca sa te gandesti asa: daca ai o secventa de exemplu: 1,2,3; ai de fapt 6 secvente crescatoare: {1},{2},{3},{1,2},{2,3},{1,2,3}. Incearca sa deduci o formula de aici. Oricum daca nu reusesti ai solutiile oficiale aici: http://www.infoarena.ro/girls-programming-camp-2011/selectie/solutii; Succes!
|
|
|
Memorat
|
|
|
|
•otniel
Strain
Karma: -13
Deconectat
Mesaje: 49
|
|
« Răspunde #21 : Septembrie 14, 2013, 14:02:28 » |
|
am dedus formlua pana la urma si fara solutii dar multumesc oricum
|
|
|
Memorat
|
|
|
|
|