这种写法怎么优化,稍微增加了记忆化,TLE变为WA
#include<bits/stdc++.h>
using namespace std;
int n,a[10][10],x,y,b,ans;
void dfs(int x,int y,int k,int sum)
{
ans=max(ans,sum);
if(x==n&&y==n&&k==1)
{
int t=a[x][y];
a[x][y]=0;
dfs(1,1,2,sum+t);
a[x][y]=t;
return;
}
if(x==n&&y==n&&k==2)return;
if(x+1<=n)
{
int t=a[x][y];
a[x][y]=0;
dfs(x+1,y,k,sum+t);
a[x][y]=t;
}
if(y+1<=n)
{
int t=a[x][y];
a[x][y]=0;
dfs(x,y+1,k,sum+t);
a[x][y]=t;
}
return;
}
int main(){
cin>>n;
while(1)
{
cin>>x>>y>>b;
if(x==0&&y==0&&b==0)break;
a[x][y]=b;
}
dfs(1,1,1,0);
cout<<ans;
return 0;
}