Input
Output
Example Input
6 6 3 3
Example Output
6
#include<stdio.h> int fun(int a[16][16],int n,int m) { long long f[16][16]; int i,j; for(i=0;i<=m;i++) { if(a[0][i]!=1) f[0][i]=1; else for(;i<=m;i++) f[0][i]=0; } for(i=1;i<=n;i++) { if(a[i][0]!=1) f[i][0]=1; else for(;i<=n;i++) f[i][0]=0; } for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { if(a[i][j]==1) f[i][j]=0; else f[i][j]=f[i-1][j]+f[i][j-1]; } } return f[n][m]; } int main() { int a,b,c,d; int i,j; int k=0; int num[16][16]={0}; int x[8]={1,2,2,1,-1,-2,-2,-1}; int y[8]={2,1,-1,-2,-2,-1,1,2}; scanf("%d%d%d%d",&a,&b,&c,&d); for(i=0;i<8;i++) { if((d+y[i]>=0)&&(d+y[i]<=b)&&(c+x[i]>=0)&&(c+x[i]<=a)) num[c+x[i]][d+y[i]]=1; } num[c][d]=1; k=fun(num,a,b); printf("%d\n",k); return 0; }