仍然是很基础的题目
#include<stdio.h>
#include<iostream>
using namespace std;
const int MAX_N=101;
int N;
int A[MAX_N][MAX_N];
int F[MAX_N];
int init()
{
int i,j;
scanf("%d",&N);
for (i=1;i<=N;i++)
for (j=1;j<=i;j++)
scanf("%d",&A[i][j]);
for (i=1;i<=N;i++)
F[i]=A[N][i];
}
int work()
{
int i,j;
for (i=N-1;i>=1;i--)
for (j=1;j<=i;j++)
F[j]=max(F[j],F[j+1])+A[i][j];
}
int put()
{
printf("%d",F[1]);
}
int main()
{
init();
work();
put();
return 0;
}