N+M個のボールから2つ選んで、書かれた数の和が偶数になる方法の数を求める問題です。
N個とM個から1個ずつ選んでしまうと、必ず奇数になるため、それ以外の方法の数を計算することにします。
提出
n, m = map(int, input().split())
ans = (n+m)*(n+m-1)//2 - (n*m)
print(ans)
例えば、K個のボールから2個選ぶ選択肢は、全部で「K×(K-1)/2」通りあります。
これに「N+M」を入れて、全ての方法の数を求め、そこから「N個とM個から1個ずつ選ぶ方法」を引いたものが答えになります。
split()メソッド
split()メソッドは、区切り文字を指定して、文字列を分割します。
区切り文字を指定しない場合、空白、タブ、改行で分割されます。
str.split("区切り文字")
map()関数
map()関数は、イテラブル(リストやタプルなど)の各要素に関数の処理を適用します。
map(関数、イテラブル)
このほか、「Nから2個選ぶ方法」と「Mから2個選ぶ方法」を足し合わせても求めることができます。
提出
n, m = map(int, input().split())
ans = n*(n-1)//2 + m*(m-1)//2
print(ans)