#595. 必须经过检查点的走法数

必须经过检查点的走法数

必须经过检查点的走法数

题目描述

在一张大小为 n×mn \times m 的棋盘上,左上角格子记为 (1,1)(1,1),右下角格子记为 (n,m)(n,m)
现在在 (1,1)(1,1) 有一个卒,它每一步只能向或向移动一格,不能向上或向左走。

棋盘上有一个“检查点” (x,y)(x,y)。要求所有路径必须经过这个格子,才能算作合法走法。

请你计算:从 (1,1)(1,1) 出发,恰好在途中经过检查点 (x,y)(x,y),最终走到 (n,m)(n,m) 的不同走法有多少种。

保证检查点在棋盘内部,且不是起点也不是终点。

输入格式

输入只有一行,包含四个整数 n,m,x,yn,m,x,y,分别表示棋盘的行数、列数和检查点的行列坐标。

输出格式

输出一行,一个整数,表示从 (1,1)(1,1) 走到 (n,m)(n,m) 且必须经过 (x,y)(x,y) 的不同走法数量。

输入输出样例 #1

输入 #1

3 3 2 2

输出 #1

4

样例解释

  • (1,1)(1,1)(3,3)(3,3) 原本共有 66 条路径;
  • 其中有 44 条会经过 (2,2)(2,2),这 44 条即为合法路径。

输入输出样例 #2

输入 #2

4 5 2 3

输出 #2

18

数据范围

对于 100%100\% 的数据,保证:

  • 1n,m301 \le n,m \le 30
  • 1<x<n1 < x < n1<y<m1 < y < m

答案不超过 6464 位有符号整数范围。