結果

問題 No.617 Nafmo、買い出しに行く
ユーザー Ryuto
提出日時 2017-12-17 19:20:52
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 780 bytes
コンパイル時間 396 ms
コンパイル使用メモリ 82,068 KB
実行使用メモリ 151,404 KB
最終ジャッジ日時 2024-12-15 22:50:30
合計ジャッジ時間 14,164 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 14 WA * 2 TLE * 4
権限があれば一括ダウンロードができます

ソースコード

diff #

import itertools

indat = [int(x) for x in input().split()]
weights = list()
for i in range(indat[0]):
    x = int(input())
    if x < indat[1]:
        weights.append(x)
    elif x == indat[1]:
        print(x)
        exit()
weights.sort(reverse=True)

use = set()
unuse = set()
ans = 0
for weight in weights:
    if ans + weight == indat[1]:
        print(indat[1])
        exit()
    elif ans + weight > indat[1]:
        unuse.add(weight)
        continue
    else:
        use.add(weight)
        ans += weight

for diff in range(indat[1]-ans, 0, -1):
    for i in range(2, len(unuse)+1):
        for perm in itertools.permutations(weights, i):
            val = sum(perm)
            if val - diff in use:
                print(indat[1])
                exit()

print(ans)
0