結果
問題 |
No.1715 Dinner 2
|
ユーザー |
![]() |
提出日時 | 2021-10-22 22:06:29 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,010 bytes |
コンパイル時間 | 313 ms |
コンパイル使用メモリ | 82,520 KB |
実行使用メモリ | 75,276 KB |
最終ジャッジ日時 | 2024-09-23 05:37:22 |
合計ジャッジ時間 | 4,273 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 36 WA * 2 |
ソースコード
mod = 1000000007 eps = 10**-9 def main(): import sys input = sys.stdin.readline N, D = map(int, input().split()) P = [] Q = [] for _ in range(N): p, q = map(int, input().split()) P.append(p) Q.append(q) ok = -10 ** 9 ng = 0 mid = (ok + ng) // 2 while ng - ok > 1: prev = -1 cur = 0 flg = 1 for d in range(D): i_best = -1 cur_best = -10 ** 9 for i in range(N): if cur - P[i] < mid: continue if prev == i: continue cur_new = cur - P[i] + Q[i] if cur_new < mid: continue if cur_new > cur_best: cur_best = cur_new i_best = i if i_best == -1: flg = 0 break else: if d == 0: i_best_first = i_best prev = i_best cur = cur_best if flg == 0: prev = i_best_first cur = 0 flg = 1 for d in range(D): i_best = -1 cur_best = -10 ** 9 for i in range(N): if cur - P[i] < mid: continue if prev == i: continue cur_new = cur - P[i] + Q[i] if cur_new < mid: continue if cur_new > cur_best: cur_best = cur_new i_best = i if i_best == -1: flg = 0 break prev = i_best cur = cur_best if flg: ok = mid else: ng = mid else: ok = mid mid = (ok + ng) // 2 print(ok) if __name__ == '__main__': main()