先不说#2为啥TLE,先告诉我其他为啥WA了。
#include <cstdio>
#include <algorithm>
int r,c,ans = -1,sum,a[105][105];
void dfs(int x,int y){
ans = std::max(ans,sum);
if (x > 0 && a[x][y] > a[x - 1][y]){
sum++;
dfs(x - 1,y);
sum--;
}
if (x < r && a[x][y] > a[x + 1][y]){
sum++;
dfs(x + 1,y);
sum--;
}
if (y > 0 && a[x][y] > a[x][y - 1]){
sum++;
dfs(x,y - 1);
sum--;
}
if (y < c && a[x][y] > a[x][y + 1]){
sum++;
dfs(x,y + 1);
sum--;
}
}
int main(){
scanf("%d%d",&r,&c);
for (int i = 1;i <= r;i++)
for (int j = 1;j <= c;j++)
scanf("%d",&a[i][j]);
for (int i = 1;i <= r;i++)
for (int j = 1;j <= c;j++)
dfs(i,j);
printf("%d\n",ans);
return 0;
}