记录编号 163634 评测结果 AAAAAA
题目名称 [NOIP 2000]方格取数 最终得分 100
用户昵称 GravatarOI88 是否通过 通过
代码语言 C++ 运行时间 0.001 s
提交时间 2015-05-25 11:44:49 内存使用 0.32 MiB
显示代码纯文本
#include<cstdio>
using namespace std;
int data[15][15],f[35][15][15];
inline int max(int a,int b)
{
	if(a>b) return a;
	return b;
}
int main()
{
	freopen("fgqs.in","r",stdin);
	freopen("fgqs.out","w",stdout);
	int n;
	scanf("%d",&n);
	for(int i=1;i;i++)
	{
		int a,b,c;
		scanf("%d%d%d",&a,&b,&c);
		if(a==0 & b==0 && c==0)
			break;
		data[a][b]=c;
	}
	int mn=n << 1;
	for(int k=1;k<=mn;k++)
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
			{
				f[k][i][j]=max(max(f[k-1][i][j],f[k-1][i-1][j]),max(f[k-1][i][j-1],f[k-1][i-1][j-1]))+data[k-i][i];
				if(i!=j)
					f[k][i][j]+=data[k-j][j];
			}
	printf("%d",f[mn][n][n]);
}