为什么会RE,20分
查看原帖
为什么会RE,20分
1338512
123cpf楼主2024/6/30 01:09
#include<bits/stdc++.h>
using namespace std;
const int N=10;
int a[N][N],b[N][N],x,y,z,n;
void find(int x1,int y1){
	if(x1==0&&y1==0)
	{
		return;
	}
	else {
		if(a[x1][y1]-b[x1][y1]==a[x1-1][y1])
	   {  
		b[x1][y1]=0;
		find(x1-1,y1); 
   	   }
	    else if(a[x1][y1]-b[x1][y1]==a[x1][y1-1])
	   {
		b[x1][y1]=0;
		find(x1,y1-1);
       }
	}
}
void solve1(){
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			a[i][j]+=max(a[i-1][j],a[i][j-1]);
		}
	}
}
void solve2(){
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			b[i][j]+=max(b[i-1][j],b[i][j-1]);
		}
	}
}
signed main(){
	cin>>n;
	for(int i=1;i<=n+1;i++)
	{
		cin>>x>>y>>z;
		if(x==0&&y==0&&z==0)
		break;
		else a[x][y]=z,b[x][y]=z;
	}
	solve1();
	find(n,n);
	solve2();
	cout<<a[n][n]+b[n][n];
	return 0;
}
2024/6/30 01:09
加载中...