原来校内 OJ 过了,但洛谷 #4 WA。
#include<bits/stdc++.h>
using namespace std;
const int N=12;
int sc[N][N];
int dp[N][N][N];
int main(){
int n;cin>>n;int x,y,z;
while(cin>>x>>y>>z){
if(!(x || y || z)) break;
sc[x][y]=z;
}
for(int i1=1; i1<=n; i1++){
for(int j1=1; j1<=n; j1++){
for(int i2=1; i2<=n; i2++){
if(i1==i2) dp[i1][j1][i2]=sc[i1][j1]+max(dp[i1][j1-1][i2-1],dp[i1-1][j1][i2]);
else dp[i1][j1][i2]=sc[i1][j1]+sc[i2][i1+j1-i2]+max({dp[i1-1][j1][i2-1],dp[i1-1][j1][i2],dp[i1][j1-1][i2-1],dp[i1][j1-1][i2]});
}
}
}
cout<<dp[n][n][n];
return 0;
}