// 从上往下 する#include <iostreamの> の#include <アルゴリズム> 使用して 名前空間をSTD。 CONST INT N = 510、INF = 1E9。 int型のn; int型[N] [N]。 INT F [N]、[N]。 int型のmain(){ scanf関数(" %のD "、&n)を。 以下のために(INT iが= 1 ; I <= N; I ++ ) のための(INT J = 1 ; J <= I; J ++ ) のscanf(" %dの"、A&[I] [J]); のための(INT I = 0 ; I <= N; I ++ ) // 初期化するために、最後の行は、負の無限大に初期化し、右上にないように するために(int型 J = 0 ; J <= I + 1、J ++ ) F [I] [J] = - INF; [F 1 ] [ 1 ] = A [ 1 ] [ 1 ]; // 用(INT I = 2。 I ++; I <= N ) のための(INT J = 1。 ; J <= I; J ++) F [I] [J] = MAX(F [I - 1 ] [J - 1 ] + A [I]、[J]、F [I - 1 ] [J] + A [I] [J]); INT = RES - INF; のため(int型 I = 1。最大= RES(RES、F [N-] [I]);;; I <= N-I ++)//は、最後の行の最大値を取得する のprintf(" %Dを\ N- " 、RES); 戻り 0 ; }