解题代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int N;
cin>>N;
int tower[N+1][N+1]={};
int dp[N+1][N+1]={};
for(int i=1;i<=N;i++){
for(int j=1;j<=i;j++){
cin>>tower[i][j];
}
}
dp[1][1]=tower[1][1];
for(int i=1;i<=N;i++){
for(int j=1;j<=i;j++){
dp[i][j]=tower[i][j]+max(dp[i-1][j],dp[i-1][j-1]);
}
}
cout<<max(dp[N][(N+1)/2],dp[N][(N+2)/2]);
return 0;
}