资深光能
看代码:
#include<iostream>
#include<cstdio>
using namespace std;
int map[15][15],a,b,c;
int f[15][15][15][15];
int main(){
int n;
cin>>n;
while(cin>>a>>b>>c)
{
if(a==0&&b==0&&c==0)
break;
map[a][b]=c;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
for(int k=1;k<=n;k++)
{
for(int t=1;t<=n;t++)
{
int x=max(f[i-1][j][k-1][t],f[i-1][j][k][t-1]);
int y=max(f[i][j-1][k-1][t],f[i][j-1][k][t-1]);
f[i][j][k][t]=max(x,y)+map[i][j]+map[k][t];
if(i==k&&j==t)
f[i][j][k][t]-=map[i][j];
}
}
}
}
cout<<f[n][n][n][n];
return 0;
}