1796 数字金字塔

#include<bits/stdc++.h>
using namespace std;

long long a[1001][1001];
int n;


int main(){
	cin>>n;
	
	long long ans = -1;//记录最大结果 
	//开始递推每一个位置的最大值 
	for(int i=1;i<=n;i++){
		for(int j=1;j<=i;j++){
			cin>>a[i][j];
			if(j==1){ //第一列 
				a[i][j] += a[i-1][j];
			} else if(j==i){  //最后一列 
				a[i][j] += a[i-1][j-1];
			}else{ //其他位置 
				a[i][j] += max(a[i-1][j],a[i-1][j-1]);
			}
			ans = max(ans,a[i][j]);
		}
	} 
	
	cout<<ans; // 输出结果 
	return 0;
}
posted @   行胜于言Ibl  阅读(13)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示