Cerinţa
Se consideră un triunghi de numere întregi format dinn
linii. Prima linie conține un număr, a doua linie conține 2
numere, etc. ultima linie n
, conține n
numere. În acest triunghi se pot calcula diverse sume cu n
elemente, în funcție de modul de parcurgere a numerelor din triunghi. Unul dintre aceste moduri este următorul:
- se pleacă din ultimul element al ultimei linii
- se merge întotdeauna spre stânga pe aceeași linie sau pe linia de deasupra, adică de pe linia
i
și coloanaj
se merge pe liniai
și coloanaj-1
sau pe liniai-1
și coloanaj-1
. - parcurgerile se termină pe prima coloană.
Să se determine cea mai mare sumă care se poate obține în acest mod.
Date de intrare
Fişierul de intrare sumtri_xi.in
conţine pe prima linie numărul n
. Fiecare dintre următoarele n
linii conține câte o linie a triunghiului.
Date de ieşire
Fişierul de ieşire sumtri_xi.out
va conţine pe prima linie numărul S
, reprezentând cea mai mare sumă care se poate obține.
Restricţii şi precizări
1 ≤ n ≤ 100
- numerele din triunghi sunt din intervalul
[-1000, 1000]
.
Exemplu
sumtri_xi.in
5 4 1 4 2 -1 3 9 4 4 3 4 5 -2 2 1
sumtri_xi.out
21
Explicație
Suma 21
se poate obține adunând numerele:
4
1 4
2 -1 3
9 4 4 3
4 5 -2 2 1
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema SumTri_XI:
#include <fstream>
using namespace std;
ifstream fin("sumtri_xi.in");
ofstream fout("sumtri_xi.out");
int main()
{
int n,A[101][101]={0};
fin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
fin>>A[i][j];
for(int j=2;j<=n;j++)
for(int i=j;i<=n;i++)
A[i][j]=A[i][j]+max(A[i][j-1],A[i-1][j-1]);
fout<<A[n][n];
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #3259 SumTri_XI
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3259 SumTri_XI de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!