結果
| 問題 | No.617 Nafmo、買い出しに行く | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2019-12-09 02:28:10 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 1,264 ms / 2,000 ms | 
| コード長 | 2,072 bytes | 
| コンパイル時間 | 287 ms | 
| コンパイル使用メモリ | 82,048 KB | 
| 実行使用メモリ | 76,544 KB | 
| 最終ジャッジ日時 | 2025-01-03 07:50:46 | 
| 合計ジャッジ時間 | 13,771 ms | 
| ジャッジサーバーID (参考情報) | judge5 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 20 | 
ソースコード
from __future__ import print_function
import sys
input = sys.stdin.readline
def eprint(*args, **kwargs):
    print(*args, file=sys.stderr, **kwargs)
    return
# import math
# import string
# import fractions
# from fractions import Fraction
# from fractions import gcd
# def lcm(n,m):
#     return int(n*m/gcd(n,m))
# import re
# import array
# import copy
# import functools
# import operator
# import collections
# import itertools
# import bisect
# import heapq
# from heapq import heappush
# from heapq import heappop
# from heapq import heappushpop
# from heapq import heapify
# from heapq import heapreplace
# from queue import PriorityQueue as pq
# def reduce(p, q):
#     common = fractions.gcd(p, q)
#     return (p//common , q//common )
# # from itertools import accumulate
# # from collections import deque
# from operator import mul
# from functools import reduce
# def combinations_count(n, r):
#     r = min(r, n - r)
#     numer = reduce(mul, range(n, n - r, -1), 1)
#     denom = reduce(mul, range(1, r + 1), 1)
#     return numer // denom
# import random
def main():
    num_products, power_me = map(int, input().strip().split())
    l_weight=[]
    for i in range(num_products):
        a = int(input().strip())
        l_weight.append(a)
    ans=0
    for case in range(2 ** num_products):     # 場合ループ # nは人とかモノとかの個数
        l_bin_products = list(map(int,(format(case,'b').zfill(num_products))))
        # eprint("l_bin_products ",end=": ")
        # eprint(l_bin_products)
        #flag=0
        temp_ans=0
        Pow=power_me
        for index_products in range(num_products):      # 人とかモノとかループ
            if l_bin_products[index_products]==1:    # その桁がyesだと仮定している場合
               temp_ans+=l_weight[index_products]
               Pow-=l_weight[index_products]
               if Pow<0:
                   break
            else:
                pass
            ans=max(ans,temp_ans)
    print(ans)
    return
if __name__ == '__main__':
    main()
            
            
            
        