Afişează mesaje
|
Pagini: [1] 2
|
3
|
infoarena - concursuri, probleme, evaluator, articole / Algoritmiada 2016 / Răspuns: Seriale
|
: Decembrie 06, 2015, 11:53:27
|
"el ar vrea ca cel mai mic element sa fie mereu in stanga si cel mai mare element in dreapta" " el s-a hotarat sa selecteze din prima lista o data cel mai bun serial, dupa cel mai slab serial" ex : n = 5 m = 5 a = (5 1 3 7 2) b = (4 6 8 9 10) Cand se elimina 7 maximul e in stanga minimului. Aici se afiseaza -1 sau se considera ca se adauga un element din al doilea vector care sa regleze situatia?
|
|
|
20
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 840 Cuburi3
|
: Ianuarie 10, 2014, 12:13:37
|
Imi poate sugera si mie cineva un test (altul fata de cele precizate la comentariile anterioare  ) . Am facut problema dupa varianta 2 de la solutie, dar iau doar 30p.. for (i=1;i<=n;++i) { int Max=0; for (j=1;j<i;++j) if (a[j].g>=a[i].g) if (best[j]>Max) { Max=best[j]; poz[i]=j; L[i]=L[j]+1;} best[i]=Max+a[i].l; if (best[i]>=sum) sum=best[i],p=i,lmax=L[i];; } printf("%d %d\n",lmax,sum);
|
|
|
22
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 507 Interclasare
|
: Ianuarie 10, 2014, 10:33:41
|
Eu interclasez asa: i=1; j=1; int k=0; while (i<=n && j<=m) { if (a[i]<b[j]) {v[++k]=a[i],++i;} else {v[++k]=b[j],++j;} } if (i<=n) { while (i<=n) { v[++k]=a[i]; ++i; } } else if (j<=m) { while (j<=m) { v[++k]=b[j]; ++j; } } poate sa-mi spuna cineva ce gresesc? pentru punctul 1 am incercat sa fac SCM pe fiecare vector si apoi sa fac suma si iau tot 0, la fel pe sirul asta interclasat...aveti idee de ce?
|
|
|
|