白駿18429.ルートロス(Python)


質問する
データを提供するときは、3つの重量が500以下に下がることを避けるために、適切なスイートを使用します.
(BackJunを参照)
方法
itertoolsの置換を用いて解決した.
各キットの順序を抽出し,各ケースで重量変化を探索し,問題では対応するケースのみを計算した.
コード#コード#
import itertools

N, K = map(int,input().split())
nums = list(map(int,input().split()))


cnt = 0
for kit in list(itertools.permutations((nums))):
    samdae = 500
    # 각 순열을 순회하며 3대 계산
    for k in kit:
        samdae = samdae - K + k
        # 순회하면서 한번이라도 500밑으로 내려가면 break
        if samdae < 500:
            break
    if samdae > 500:
        cnt += 1

print(cnt)