对样例输出18而不是27
#include <bits/stdc++.h>
using namespace std;
int n,ans=0;
int a[30];
int k[30][30];
int dp[30][30];
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n-1;i++){
for(int j=i+1;j<=n;j++)cin>>k[i][j];
}
dp[0][1]=a[1];
for(int i=1;i<=n-1;i++){
for(int j=i+1;j<=n;j++){
if(k[i][j])dp[i][j]=dp[i-1][i]+a[j];
ans=max(ans,dp[i][j]);
}
}
cout<<ans;
}