3,4点超时就算了,1为什么WA了呀?
#include<stdio.h>
int f(int m,int n,int x,int y)//(m,n)为终点,(x,y)为马的位置
{
if(m==0||n==0) return 1;
else if(m==x-1&&n==y-2) return 0;
else if(m==x-1&&n==y+2) return 0;
else if(m==x-2&&n==y-1) return 0;
else if(m==x-2&&n==y+1) return 0;
else if(m==x+1&&n==y-2) return 0;
else if(m==x+1&&n==y+2) return 0;
else if(m==x+2&&n==y-1) return 0;
else if(m==x+2&&n==y+1) return 0;
else if(m==x&&n==y) return 0;
else
return (f(m-1,n,x,y)+f(m,n-1,x,y));
}
int main()
{
int m,n,x,y;
scanf("%d %d %d %d",&m,&n,&x,&y);
printf("%d",f(m,n,x,y));
return 0;
}