输入格式
第一行一个整数N(<=1000),表示三角形总共有几行 第二至第N+1行,给出这个数字三角形
输出格式
一个整数,表示一路上所有数的最大和,结果不会超过int64
样例
输入数据 1
4 1 3 2 4 10 1 4 3 2 20
输出数据 1
24
#include<bits/stdc++.h>
using namespace std;
#define MAX_NUM 100
int d[MAX_NUM+10][MAX_NUM+10],N;
int MaxSum(int r,int j) {
if(r==N)
return d[r][j];
int sum1=MaxSum(r+1,j);
int sum2=MaxSum(r+1,j+1);
if(sum1>sum2)
return sum1+d[r][j];
return sum2+d[r][j];
}
int main(){
cin>>N;
for(int i=1;i<=N;i++)
for(int j=1;j<=i;j++)
cin>>d[i][j];
cout<<MaxSum(1,1);
return 0;
}