比赛 防止isaac的小练习day2 评测结果 WAWWWW
题目名称 方格取数 最终得分 16
用户昵称 123 运行时间 0.015 s
代码语言 C++ 内存使用 0.28 MiB
提交时间 2016-11-02 09:38:40
显示代码纯文本
#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <vector>
#include <algorithm>
using namespace std;
int n,ya[100][100]={0},yb[100][100]={0},yc[100][100]={0};
int zhao()
{
	int o,p,q;
	for (o=1;o<=n;o++)
	{
		for (p=1;p<=n;p++)
		{
			if(yb[p-1][o]>=yb[p][o-1])
			{
				yb[p][o]=yb[p-1][o]+yb[p][o];
				yc[p][o]=1;
			}
			if(yb[p-1][o]<yb[p][o-1])
			{
				yb[p][o]=yb[p][o-1]+yb[p][o];
				yc[p][o]=0;
			}
		}
	}
}
int main(){
	freopen ("fgqs.in","r",stdin);
	freopen ("fgqs.out","w",stdout);
	int a,b,c,d,e,f,g,i,j,ans;
	cin>>n;
	for (a=1;a<=n;a++)
	{
		cin>>c>>d>>e;
		if(c==0&&d==0&&e==0)
			break;
		ya[c][d]=e;
		yb[c][d]=e;
	}
	zhao();
	f=0;
	if(yb[n-1][n]>=yb[n][n-1])
		f=1;
	else
		f=0;
	ans=max(yb[n-1][n],yb[n][n-1]);
	i=n;j=n;
	for (;;)
	{
		if(f==1)
		{
			ya[i-1][j]=0;
			i=i-1;
		}
		if(f==0)
		{
			ya[i][j-1]=0;
			j=j-1;
		}
		f=yc[i][j];
		if(i<=0&&j<=0)
		 break;
	}
	for (a=1;a<=n;a++)
	{
		for (b=1;b<=n;b++)
		{
			yc[a][b]=0;
			yb[a][b]=ya[a][b];
		}
	}
	zhao();
	ans=ans+max(yb[n-1][n],yb[n][n-1]);
	cout<<ans;
	return 0;
}