El coeficiente binomial o número combinatorio
es el número de maneras de escoger
objectos de un total de
.
Su fórmula es bien conocida:
donde
.
Esta fórmula no es demasiado práctica desde un punto de vista
computacional, porque se tiene que trabajar con números muy grandes (los
factoriales) para acabar obteniendo un resultado mucho más pequeño. Por
ejemplo,
donde se puede ver que, pese a que el número final sólo tiene 6 cifras,
nos ha hecho falta calcular
,
que tiene 19. Esto puede ser un problema, puesto que el tipo
int de 32 bits no puede almacenar números de más de 10
cifras.
Este, sin embargo, no es el único modo de calcular . Por ejemplo, los números combinatorios satisfacen la propiedad siguiente: Esta fórmula recursiva permite calcular los números combinatorios sin multiplicaciones ni divisiones, mediante un procedimiento conocido hoy en día como “Triángulo de Pascal” o “Triángulo de Tartaglia”, aunque tenga referencias históricas con más de 1000 años de antigüedad:
| … |
| … |
Para calcular más números combinatorios sólo hay que llenar más filas del triángulo. Usad esta idea para calcular diversos números combinatorios.
La entrada consiste en diversos casos, cada uno con dos naturales y , donde y .
Para cada caso, escribid .
Input
0 0 1 0 1 1 2 0 2 1 2 2
Output
1 1 1 1 2 1
Input
20 10 30 15 30 10 30 20 30 0 30 30
Output
184756 155117520 30045015 30045015 1 1