結果

問題 No.286 Modulo Discount Store
コンテスト
ユーザー gahou
提出日時 2016-11-15 13:56:45
言語 PyPy2
(7.3.15)
結果
AC  
実行時間 207 ms / 2,000 ms
コード長 528 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 134 ms
コンパイル使用メモリ 77,696 KB
最終ジャッジ日時 2025-12-03 22:44:13
ジャッジサーバーID
(参考情報)
judge1 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 40
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

def minBuy(M,dp,st):
  minSum=10**9
  i=0
  while True:
    if st&2**i!=0:
      k=0
      tmpSum=0
      while True:
        if st<2**k: break
        if i==k:
          k+=1
          continue
        if st&2**k!=0:
          tmpSum+=M[k]
        k+=1
      minSum=min(minSum,dp[st-2**i]+max(0,M[i]-tmpSum%1000))
    i+=1
    if st<2**i: break
  return minSum

N=int(raw_input())
M=[]
for _ in xrange(N):
  M.append(int(raw_input()))
dp=[10**9]*(2**N)
dp[0]=0
for i in xrange(1,2**N):
  dp[i] = minBuy(M,dp,i)
print dp[2**N-1]
0