AGC 018 A

問題

atcoder.jp

コード

import numpy as np
import sys
import math
from functools import reduce
import fractions as fr

def gcd(*numbers):
    return reduce(fr.gcd, numbers)

n,k = map(int,input().split())
a = list(map(int,input().split()))

c = int(gcd(*a))

for i in a:
  if i - k >= 0 and (i-k) % c == 0:
    print("POSSIBLE")
    sys.exit()
    
print("IMPOSSIBLE")

コメント

最大公約数を楽に求められる方法を探した。AtCoderではnumpy.gcdが使えないみたいなので、fractions.gcdを用いた。listのgcdを求めるには、reduceという高階関数を使うといいらしい。