记录编号 392391 评测结果 AAAAAA
题目名称 [NOIP 2000]方格取数 最终得分 100
用户昵称 Gravatarliuyu 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2017-04-07 19:53:07 内存使用 0.39 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int maxn=12;
int n,a[maxn][maxn],s[maxn][maxn][maxn][maxn];
int main()
{
	freopen("fgqs.in","r",stdin);
	freopen("fgqs.out","w",stdout);
	scanf("%d",&n);
	int x,y,z;
	while(scanf("%d%d%d",&x,&y,&z)==3)
	  a[x][y]=z;
	int t1,t2;
	for(int i=1;i<=n;i++)
	 for(int j=1;j<=n;j++)
	  for(int k=1;k<=n;k++)
	   for(int l=1;l<=n;l++)
	   {
	   	t1=max(s[i][j-1][k][l-1],s[i-1][j][k-1][l]);
	   	t2=max(s[i][j-1][k-1][l],s[i-1][j][k][l-1]);
	   	s[i][j][k][l]=max(t1,t2)+a[i][j];
	   	if(i!=k&&j!=l)s[i][j][k][l]+=a[k][l];
	   }
	printf("%d",s[n][n][n][n]);
	
}