Rezolvare completă PbInfo #3259 SumTri_XI

Cerinţa

Se consideră un triunghi de numere întregi format din n 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 coloana j se merge pe linia i și coloana j-1 sau pe linia i-1 și coloana j-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 Adresa de email.

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!