虽然正解不是暴力,但是暴力写wa了...求大佬帮我调调暴力
暴力代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
int r,c;
int f[1500][1500];
int maxx=0;
inline void read(register int &a) {
a = 0;
char c;
while ((c = getchar()) < 48);
do a = (a << 3) + (a << 1) + (c ^ 48);
while ((c = getchar()) > 47);
}
void iread(){
read(n);
read(r);read(c);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
read(f[i][j]);
}
}
}
void dfs(int x,int y,int dep){
// cout<<x<<' '<<y<<endl;
maxx=max(maxx,dep);
for(int i=x+2;i<=n&&i>=1;i++){
if(f[i][y+1]>f[x][y]){
dfs(i,y+1,dep+1);
}
if(f[i][y-1]>f[x][y]){
dfs(i,y-1,dep+1);
}
}
for(int i=x-2;i<=n&&i>=1;i--){
if(f[i][y+1]>f[x][y]){
dfs(i,y+1,dep+1);
}
if(f[i][y-1]>f[x][y]){
dfs(i,y-1,dep+1);
}
}
for(int i=y+2;i<=n&&i>=1;i++){
if(f[x+1][i]>f[x][y]){
dfs(x+1,i,dep+1);
}
if(f[x-1][i]>f[x][y]){
dfs(x-1,i,dep+1);
}
}
for(int i=y-2;i<=n&&i>=1;i--){
if(f[x+1][i]>f[x][y]){
dfs(x+1,i,dep+1);
}
if(f[x-1][i]>f[x][y]){
dfs(x-1,i,dep+1);
}
}
return ;
}
signed main()
{
iread();
dfs(r,c,1);
// cout<<check(4,4);
cout<<maxx;
return 0;
}