Contando caminos

Time Limit:
1 Sec
Memory Limit:
512Mb
Enviados:
0
Resuelto:
0
Enviar IDE Estado

Descripción

Tenemos una cuadrícula de N filas y M columnas. Deseamos desplazarnos de la esquina superior izquierda a la inferior derecha, moviéndonos una casilla hacia abajo o hacia la derecha en cada paso.

Algunas casillas están bloqueadas: concretamente, la intersección de las últimas A filas con las primeras B columnas de la cuadrícula. No está permitido pisarlas.

Cuenta las rutas distintas desde el origen hasta el destino que respetan las restricciones. Imprime la respuesta módulo 109 + 7.

Por ejemplo, si N = M = 6 y A = B = 3, las nueve casillas del bloque inferior izquierdo están prohibidas.

Si la casilla inicial o final está bloqueada, no existe ningún recorrido válido y la respuesta es 0.

Entrada

Una línea con los enteros N M A B (1 ≤ N, M ≤ 105, 1 ≤ A ≤ N, 1 ≤ B ≤ M).

Salida

Imprime un entero: el número de caminos posibles módulo 109 + 7.

Ejemplo Entrada

Copy icon
2 3 1 1

Ejemplo Salida

Copy icon
2

Ayuda