dp。
#include<iostream>
#include<algorithm>
using namespace std;
int N;
int a[355][355];
int dp[355][355];
int main()
{
cin >> N;
for(int i = 0; i < N; i ++)
for(int j = 0; j <= i; j ++)
cin >> a[i][j];
dp[0][0] = a[0][0];
for(int i = 1; i < N; i ++)
for(int j = 0; j <= i; j ++)
{
dp[i][j] = dp[i - 1][j] + a[i][j];
if(j)
dp[i][j] = max(dp[i][j], dp[i - 1][j - 1] + a[i][j]);
}
cout << *max_element(dp[N - 1], dp[N - 1] + N) << endl;
// system("pause");
return 0;
}