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;
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号