比赛 |
防止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;
}