# 下一个
```cpp
#include<iostream>
using namespace std;
bool a[21][21];
unsigned long long sum[21][21];
int x[]={0,1,1,2,2,-1,-1,-2,-2};
int y[]={0,2,-2,1,-1,2,-2,1,-1};
int manx,many;
int bx,by;
int main()
{
cin>>bx>>by;
cin>>manx>>many;
for(int i=0;i<=8;i++){
if(manx+x[i]<0||manx+x[i]>20||many+y[i]<0||many+y[i]>20)continue;
a[manx+x[i]][many+y[i]]=true;
}
sum[0][0]=1;
for(int i=0;i<=bx;i++){
for(int k=0;k<=by;k++){
if(!a[i][k])continue;
else sum[i][k]=sum[i-1][k]+sum[i][k-1];
}
}
cout<<sum[bx][by];
return 0;
}
```
by int树先生 @ 2020-01-14 22:41:56
@[int树先生](/user/197457) 你走马的时候把带马的格子设成true,为什么后边确是!a[i][j]?
by KellyFrog @ 2020-01-15 06:43:50
@[int树先生](/user/197457) 还有你这个i=0的时候i-1成负数了,会re的
by KellyFrog @ 2020-01-15 06:45:16
`line 18,line 19` : from `1` to `bx` from `1` to `by`
`line 20` :
```cpp
if(a[i][k])continue;
```
by littlefrog @ 2020-01-16 11:45:27