クルトンのプログラミング教室

Pythonの使い方やPythonを使った競技プログラミングの解法などを解説しています。

Pythonで理解する蟻本「1-1 くじびき」(p.8)

この記事は「プログラミングコンテストチャレンジブック第2版」(蟻本)の
「1-1 くじびき」(p.8)
のコードをPythonで書き直したものとなっています。

入力

n\,m\\k_1\,…\,k_n

入力例



3 10
1 3 5

解答

MAX_N = 50

n, m = map(int,input().split())

# 標準入力より入力
k = list(map(int,input().split()))

# 和がmになる組み合わせが見つかったかどうかのフラグ
f = False

# 4重ループにより全通りの出方を試す
for a in range(n):
    for b in range(n):
        for c in range(n):
            for d in range(n):
                if k[a] + k[b] + k[c] + k[d] == m:
                    f = True

# 標準出力へ出力
if f:
    print("Yes")
else:
    print("No")