请厉害的大神帮忙debug
#include<iostream>
using namespace std;
int main()
{
long long x,y,a,b,i,j;//x,y表示终点坐标,a,b表示马的坐标,i,j表示行走的坐标(i是行,j是列)
scanf("%d%d",&x,&y);
scanf("%d%d",&a,&b);
long long num[x+1][y+1];//数组num表示路径数
for ( i = 0; i <= x; i++)
{
for ( j = 0; j <= y; j++)
{
num[i][j]=0;
if(i==0&&j==0) num[i][j]=1;
if (!(((i-a)*(i-a)+(j-b)*(j-b)==5)||(i==a&&j==b))){//判断卒是否走到了马眼
if (i-1>=0)
{
num[i][j]=num[i-1][j];
}
if(j-1>=0){
num[i][j]=num[i][j]+num[i][j-1];
}
}
}
}
printf("%d",num[x][y]);//num数组中存储了所有的路径,我们只是取出看其中x,y我们所需要的坐标的路径数。
return 0;
}