1796 數字金字塔

行胜于言Ibl發表於2024-10-30
#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;
}

相關文章