問題
K – Stones
参考
AtCoderDPまとめコンテスト K問題 「Stones」
例題 2. EDPC K 問題 – Stones 〜 石取りゲームの一般化 〜
回答
import sys
# input処理を高速化する
input = sys.stdin.readline
def main():
N, K = map(int, input().split())
lst_a = list(map(int, input().split()))
# 石の個数が残りi個の局面で勝ちTrue 負け False
dp = [False] * (K+1)
for i in range(1, K+1):
for j in range(N):
if i - lst_a[j] >= 0:
dp[i] |= not(dp[i - lst_a[j]])
if dp[K]:
print('First')
else:
print('Second')
main()