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分
0 人评分
【亲和数】 (C语言代码)浏览:492 |
C语言程序设计教程(第三版)课后习题6.3 (C++代码)浏览:949 |
The 3n + 1 problem (C语言代码)浏览:548 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:784 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:556 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1478 |
判定字符位置 (C语言代码)浏览:792 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:672 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:446 |
【偶数求和】 (C语言代码)浏览:432 |