問題概要
問題ページ
-
A - The Number of Even Pairs
問題ページへ移動する
問題文
\(N+M\) 個のボールがあります。各ボールには整数が \(1\) つ書かれています。
これらのボールに書かれている数について、
- \(N\) 個のボールに書かれている数は偶数
- \(M\) 個のボールに書かれている数は奇数
であることがわかっています。
これらの \(N+M\) 個のボールの中から \(2\) つ選んで、書かれた数の和が偶数になる方法の数を求めてください。選ぶ順序は考慮しません。
なお、この方法の数はボールに書かれている整数の実際の値によらないことが示せます。
制約
- \(0 \leq N,M \leq 100\)
- \(2 \leq N+M\)
- 入力はすべて整数である。
問題の考察
ACコード
import sys
def alg_combination(n, r):
r = min(n - r, r)
if n < 2:
return 0
if r == 0:
return 1
else:
denominator = 1
for i in range(n, n - r, -1):
denominator = (denominator * i)
molecule = 1
for i in range(1, r + 1):
molecule = (molecule * i)
return denominator // molecule
def solve():
input = sys.stdin.readline
mod = 10 ** 9 + 7
n, m = list(map(int, input().rstrip('\n').split()))
print(alg_combination(n, 2) + alg_combination(m, 2))
if __name__ == '__main__':
solve()