#1623
SumMax1
Avem o matrice triunghiulară cu n
linii, cu elemente numere întregi. În această matrice putem construi un traseu după următoarea regulă:
a
1,1
a
i,j
aparţine traseului, atunci următorul element al traseului poate fi doar a
i+1,j
sau a
i+1,j+1
, pentru orice 1≤j≤i<n
.1
la n
. Valoarea traseului este egală cu suma elementelor ce îl formează.5+4+6+5+4=24
, şi se codifică cu 1,2,3,3,4
.Fie mulţimea tuturor traseelor de valoare maximă generate în ordine lexicografică și numerotate. Pentru exemplul de mai sus avem șase trasee de lungime maximă:
1 1 1 1 2 (5+2+7+6+4=24)
1 1 1 2 2 (5+2+7+6+4=24)
1 2 2 2 2 (5+4+5+6+4=24)
1 2 3 3 4 (5+4+6+5+4=24)
1 2 3 4 4 (5+4+6+5+4=24)
1 2 3 4 5 (5+4+6+5+4=24)
Cunoscând dimensiunea și elementele unei matrice triunghiulare, respectiv două numere naturale st
şi dr
(st≤dr
), se cere să se determine:
2000000000
, se va tipări valoarea 2000000001
;st
, st+1
, … , dr
.OJI 2016, Clasele XI-XII
Problema | SumMax1 | Operații I/O |
summax1.in /summax1.out
|
---|---|---|---|
Limita timp | 2 secunde | Limita memorie |
Total: 16 MB
/
Stivă 16 MB
|
Id soluție | #35371482 | Utilizator | |
Fișier | summax1.cpp | Dimensiune | 2.04 KB |
Data încărcării | 07 Martie 2022, 14:23 | Scor / rezultat | Eroare de compilare |
summax1.cpp:1:20: warning: extra tokens at end of #include directive [enabled by default] #include <fstream> #include <vector> ^ summax1.cpp:6:1: error: 'vector' does not name a type vector <unsigned int> b[2001]; ^ summax1.cpp:7:1: error: 'vector' does not name a type vector <unsigned int> c[2001]; ^ summax1.cpp: In function 'void citire()': summax1.cpp:14:9: error: 'b' was not declared in this scope b[i].push_back(0); c[i].push_back(0); ^ summax1.cpp:14:28: error: 'c' was not declared in this scope b[i].push_back(0); c[i].push_back(0); ^ summax1.cpp:19:10: error: 'b' was not declared in this scope fin>>b[i][j]; ^ summax1.cpp: In function 'void maxi()': summax1.cpp:27:13: error: 'b' was not declared in this scope b[i][j]=b[i][j]+max(b[i+1][j],b[i+1][j+1]); ^ summax1.cpp: In function 'void drumuri()': summax1.cpp:33:27: error: 'c' was not declared in this scope for(int i=1;i<=n;i++) c[n][i]=1; ^ summax1.cpp:38:16: error: 'b' was not declared in this scope if(b[i+1][j]>b[i+1][j+1]) c[i][j]=c[i+1][j]; ^ summax1.cpp:38:39: error: 'c' was not declared in this scope if(b[i+1][j]>b[i+1][j+1]) c[i][j]=c[i+1][j]; ^ summax1.cpp:39:16: error: 'b' was not declared in this scope if(b[i+1][j]<b[i+1][j+1]) c[i][j]=c[i+1][j+1]; ^ summax1.cpp:39:39: error: 'c' was not declared in this scope if(b[i+1][j]<b[i+1][j+1]) c[i][j]=c[i+1][j+1]; ^ summax1.cpp:40:16: error: 'b' was not declared in this scope if(b[i+1][j]==b[i+1][j+1]) c[i][j]=c[i+1][j]+c[i+1][j+1]; ^ summax1.cpp:40:40: error: 'c' was not declared in this scope if(b[i+1][j]==b[i+1][j+1]) c[i][j]=c[i+1][j]+c[i+1][j+1]; ^ summax1.cpp:41:16: error: 'c' was not declared in this scope if(c[i][j]>2000000000) c[i][j]=2000000001; ^ summax1.cpp: In function 'void urm(int, int, int)': summax1.cpp:49:12: error: 'b' was not declared in this scope if(b[x+1][y]>b[x+1][y+1]) ^ summax1.cpp:63:24: error: 'c' was not declared in this scope if(indice<=c[x+1][y]) ^ summax1.cpp: In function 'int main()': summax1.cpp:84:12: error: 'c' was not declared in this scope if(c[1][1]>2000000000) fout<<2000000001; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema SumMax1 face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.