재원이는 서쪽의 사이트와 동쪽의 사이트를 다리로 연결하려고 한다. (이때 한 사이트에는 최대 한 개의 다리만 연결될 수 있다.) 재원이는 다리를 최대한 많이 지으려고 하기 때문에 서쪽의 사이트 개수만큼 (N개) 다리를 지으려고 한다. 다리끼리는 서로 겹쳐질 수 없다고 할 때 다리를 지을 수 있는 경우의 수를 구하는 프로그램을 작성하라.
예제 입력1
3 2 2 1 5 13 29
예제 출력1
1 5 67863915
조합공식 쓰면 된다고 한다. (외울수밖에 흙흙..)
e! * (e-w)! * w!
def factorial (f):
f1 = 1
for i in range(1, f+1):
f1 *= i
return f1
n = int(input())
for _ in range(n):
w, e = map(int, input().split()) # w = 서쪽다리, e = 동쪽다리
bridge = factorial(e) // (factorial(w) * factorial(e - w))
print(bridge)