結果
問題 |
No.286 Modulo Discount Store
|
ユーザー |
![]() |
提出日時 | 2024-10-21 22:07:55 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 145 ms / 2,000 ms |
コード長 | 466 bytes |
コンパイル時間 | 550 ms |
コンパイル使用メモリ | 82,392 KB |
実行使用メモリ | 76,632 KB |
最終ジャッジ日時 | 2024-10-21 22:07:59 |
合計ジャッジ時間 | 4,525 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 40 |
ソースコード
N = int(input()) M = [int(input()) for _ in range(N)] INF = 2 * 10 ** 5 N2 = 1 << N dp = [INF] * N2 X = [0] * N2 dp[0] = 0 for i in range(N2): tmp = 0 for j in range(N): if i & (1 << j): X[i] += M[j] X[i] %= 1000 for i in range(N): for j in range(N): for k in reversed(range(N2)): if not (k & (1 << j)): dp[k | (1 << j)] = min(dp[k | (1 << j)], dp[k] + max(0, M[j] - X[k])) print(dp[(N2 - 1)])