fork download
  1. program discesa;
  2. Uses Math;
  3. var A,i,j, ans:integer;
  4. tab, DP :array[1..10,1..10] of integer;
  5. begin
  6. readln(A);
  7. for i:=1 to A do begin
  8. for j:=1 to i do read(tab[i,j]);
  9. readln; end;
  10. for i:=1 to A do
  11. begin
  12. for j:=1 to i do write(tab[i,j],' ');
  13. writeln;
  14. end;
  15. for i:=1 to A do
  16. for j:=1 to A do DP[i,j]:=0;
  17. DP[1,1]:=tab[1,1]; DP[2,1]:=DP[1,1]+tab[2,1]; DP[2,2]:=DP[1,1]+tab[2,2];
  18. for i:=2 to A do DP[i,1]:=DP[i-1,1]+ tab[i,1];
  19. for i:=3 to A do
  20. for j:=2 to i do
  21. tab[i,j]:=max(DP[i-1,j-1]+tab[i,j],DP[i-1,j]+tab[i,j]);
  22. ans:=0;
  23. for i:=1 to A do if DP[A,i]>ans then ans:=DP[A,i] ;
  24. writeln(ans);
  25. end.
Success #stdin #stdout 0s 5324KB
stdin
4
1
2 9
3 7 5
8 4 11 6
stdout
1 
2 9 
3 7 5 
8 4 11 6 
14