下面这个代码为什么运行不起来呢(求助)!!!
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<bits/stdc++.h>
using namespace std;
int ans=1e9,X,Y,n,m,a[12][12],sum,f[12][12];
int b[4][2]={{1,0},{0,1},{0,-1},{-1,0}};
void dfs(int x,int y,int sm,int now)
{
if(sm==sum/2)
{
if(now<ans && f[1][1]==1) ans=now;
return ;
}
if(sm>sum/2) return ;
for(int i=0;i<4;i++)
{
X=x+b[i][0]; Y=y+b[i][1];
if(X<1 || X>n || Y<1 || Y>m) continue;
if(f[X][Y]==1) continue;
f[X][Y]=1;
dfs(X,Y,sm+a[X][Y],now+1);
if(ans) return;
f[X][Y]=0;
}
return ;
}
int main(){
scanf("%d %d",&m,&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
sum+=a[i][j];
}
if(sum%2!=0)
{
printf("0\n");
return 0;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
memset(f,0,sizeof(f));
f[i][j]=1;
dfs(i,j,a[i][j],1);
}
printf("%d\n",ans);
return 0;
}
附求助!