数字金字塔

题意

从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。


分析

从最低层开始走。


var
n,i,j:longint;
f,a:array[0..2000,0..2000]of longint;


function work(x,y:longint):longint;
begin
    if x>y then exit(x) else exit(y);
end;


begin
    readln(n);
    for i:=1 to n do
    begin
        for j:=1 to i do
        read(a[i,j]);
        readln;
    end;
    for i:=n downto 1 do
    for j:=1 to i do
    f[i,j]:=a[i,j]+work(f[i+1,j],f[i+1,j+1]);
    write(f[1,1]);
end.

posted @ 2017-02-04 16:33  银叶草  阅读(292)  评论(0编辑  收藏  举报
Live2D