問題
D – バレンタインデー
回答
AtCoder Beginner Contest 018 解説 from AtCoder Inc.
itertools.combinations
を使い、全ての組み合わせを列挙します。
import itertools N, M, P, Q, R = map(int, input().split()) xyzs = [list(map(int, input().split())) for _ in range(R)] girls_cmb = list(itertools.combinations(range(1, N+1), P)) boys_cmb = list(itertools.combinations(range(1, M+1), Q)) ans = 0 for girls in girls_cmb: for boys in boys_cmb: happiness = 0 for xyz in xyzs: girl = xyz[0] boy = xyz[1] if girl in girls and boy in boys: happiness += xyz[2] ans = max(ans, happiness) print(ans)