n,m,cx,cy=list(map(int,input().split()))
dp=[[0 for x in range(m+1)]for y in range(n+1)]
b=[[0 for x in range(m+1)]for y in range(n+1)]
p=[(-1,-2),(1,-2),(-2,-1),(2,-1),(-2,1),(2,1),(-1,2),(1,2),(0,0)]
for x in p:
if 0<=cx+x[0]<=n and 0<=cy+x[1]<=m:
b[cx+x[0]][cy+x[1]]=1
dp[0][0]=1
for x in range(1,m+1):
if b[0][x]:
dp[0][x]=0
else:
dp[0][x]=dp[0][x-1]
for x in range(1,n+1):
if b[x][0]:
dp[x][0]=0
else:
dp[x][0]=dp[x-1][0]
for x in range(1,n+1):
for y in range(1,m+1):
if b[x][y]==1:
dp[x][y]=0
else:
dp[x][y]=dp[x][y-1]+dp[x-1][y]
print(dp[n][m])
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复