結果
問題 |
No.771 しおり
|
ユーザー |
![]() |
提出日時 | 2021-10-15 00:46:31 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,101 ms / 2,000 ms |
コード長 | 696 bytes |
コンパイル時間 | 276 ms |
コンパイル使用メモリ | 82,700 KB |
実行使用メモリ | 132,704 KB |
最終ジャッジ日時 | 2024-07-22 07:29:08 |
合計ジャッジ時間 | 15,373 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 43 |
ソースコード
def main(): n = int(input()) A = [] B = [] for i in range(n): a, b = map(int, input().split()) A.append(a) B.append(b) INF = 10**18 dp = [[INF]*n for i in range(1<<n)] for i in range(n): dp[1<<i][i] = 0 for s in range(1, 1<<n): for j in range(n): if (s>>j)&1: continue ns = s|(1<<j) res = INF for i in range(n): if not ((s>>i)&1): continue res = min(res, max(dp[s][i], B[i]-A[i]+A[j])) dp[ns][j] = min(dp[ns][j], res) ans = min(dp[-1]) print(ans) if __name__ == '__main__': main()