为什么输出会全是0呢

P1434 [SHOI2002] 滑雪

pencil @ 2020-11-02 23:03:40

#include<bits/stdc++.h>
using namespace std;
int a[110][110],dx[5]= {0,0,0,1,-1},dy[5]= {0,-1,1,0,0},n,m;
bool f[110][110];
int s(int at,int b,int h) {
    if(at>n||b>m||f[at][b])
        return 0;
        f[at][b]=1;
    int i,big=-1,a1,b1,ff=0;
    if(a[at][b]<h)
        ff++;
    for(i=1; i<=4; i++) {
        a1=at+dx[i];
        b1=b+dy[i];
        f[a1][b1]=1;
        big=max(big,s(a1,b1,a[a1][b1]));
        f[a1][b1]=0;
    }
    f[at][b]=0;
    return big+ff;
}
int main() {
    int i,js,i2,maxx=-1,j;
    cin>>n>>m;
    for(i=1; i<=n; i++) {
        for(j=1; j<=m; j++) {
            cin>>a[i][j];
        }
    }
    for(i=1; i<=n; i++) {
        for(j=1; j<=m; j++) {
        //  f[i][j]=1;
            maxx=max(maxx,s(i,j,a[i][j]));
        //  f[i][j]=0;
        }
    }
    cout<<maxx;
    return 0;
}

|