#5数据点没过,求助
代码如下
#include <stdio.h>
int main()
{
long long int chess[25][25]={0};
int m,n,x,y;
scanf("%d%d%d%d",&m,&n,&x,&y);
chess[0][0]=1;
if(x>=2&&y>=1)
chess[x-2][y-1]=-1;
if(x>=2)
chess[x-2][y+1]=-1;
if(x>=1&&y>=2)
chess[x-1][y-2]=-1;
if(x>=1)
chess[x-1][y+2]=-1;
if(y>=1)
chess[x+2][y-1]=-1;
chess[x+2][y+1]=-1;
if(y>=2)
chess[x+1][y-2]=-1;
chess[x+1][y+2]=-1;
chess[x][y]=-1;
for(int i=0;i<m+2;i++)
{
for(int j=0;j<m+2;j++)
{
if(chess[i][j]==-1)
{}
else if(i==0&&j==0)
{}
else if(i==0&&j!=0)
chess[i][j]=chess[i][j-1];
else if(i!=0&&j==0)
chess[i][j]=chess[i-1][j];
else
{
if(chess[i-1][j]!=-1&&chess[i][j-1]!=-1)
chess[i][j]=chess[i-1][j]+chess[i][j-1];
else
chess[i][j]=chess[i-1][j]+chess[i][j-1]+1;
}
}
}
if(chess[m][n]!=-1)
printf("%lld",chess[m][n]);
else
printf("0");
return 0;
}