#include <iostream>
#include <algorithm>
using namespace std;
int a[351][351];
int b[351][351];
int main()
{
int NUM;
cin>>NUM;
for(int i=0;i<NUM;i++)
{
for(int j=0;j<=i;j++)
{
cin>>a[i][j];
}
}
b[0][0]=a[0][0];
int jg=0;
for(int i=1;i<NUM;i++)
{
for(int j=0;j<=i;j++)
{
if(j-1>=0)
{
b[i][j]=a[i][j]+max(b[i-1][j-1],b[i-1][j]);
}else
{
b[i][j]=a[i][j]+b[i-1][j];
}
jg=max(jg,b[i][j]);
}
}
cout<<jg;
return 0;
}
由N层数字组成的三角形,求从顶到底经过数字的最大和。