atcoder 競プロ典型90問 055 - Select 5(★2)
2022.12.15

問題

方針

  • intertools.combinationsを使って、組み合わせを求める
  • 合同式を使って、数字を落としておく
python
import math
import itertools
 
n, p, q = map(int, input().split())
a = list(map(int, input().split()))
 
ans = 0
for v in itertools.combinations(a, 5):
  v1, v2, v3, v4, v5 = v
  tmp = v1 % p
  tmp = (tmp * v2) % p
  tmp = (tmp * v3) % p
  tmp = (tmp * v4) % p
  tmp = (tmp * v5) % p
  if tmp % p == q:
    ans += 1
 
print(ans)