状态: Unaccepted
测评机: Xeond[6]
得分: 80分
提交日期: 2011-11-7 17:23:00
有效耗时: 219毫秒
测试结果1: 通过本测试点|有效耗时63ms
测试结果2: 通过本测试点|有效耗时47ms
测试结果3: 测试结果错误.错误结果为:23
正确结果应为:25
测试结果4: 通过本测试点|有效耗时46ms
测试结果5: 通过本测试点|有效耗时63ms
提交代码:
#include<iostream>
using namespace std;
int i,n,m,x,k=0;
struct r
{
int a[11][11],x[11][11];
}h;
int bj(int a,int b)
{
if(a>b)
return a;
else
return b;
}
void ql(int xx,int y)
{
h.a[xx][y]=0;
if((xx!=1)||(y!=1))
{
if(xx-1==0)
ql(xx,y-1);
else
if(y-1==0)
ql(xx-1,y);
else
if(bj(h.x[xx-1][y],h.x[xx][y-1])==h.x[xx-1][y])
ql(xx-1,y);
else
ql(xx,y-1);
}
}
int main()
{
cin>>m;
for(i=1;i<=m;i++)
for(n=1;n<=m;n++)
h.a[i][n]=0;
for(i=1;i<=m;i++)
h.x[i][0]=h.x[0][i]=0;
cin>>i>>n>>x;
while(i!=0)
{
h.a[i][n]=x;
cin>>i>>n>>x;
}
for(i=1;i<=m;i++)
for(n=1;n<=m;n++)
h.x[i][n]=bj(h.x[i-1][n],h.x[i][n-1])+h.a[i][n];
k+=h.x[m][m];
ql(m,m);
for(i=1;i<=m;i++)
for(n=1;n<=m;n++)
h.x[i][n]=0;
for(i=1;i<=m;i++)
for(n=1;n<=m;n++)
h.x[i][n]=bj(h.x[i-1][n],h.x[i][n-1])+h.a[i][n];
cout<<k+h.x[m][m];
return 0;
}