結果
問題 | No.2354 Poor Sight in Winter |
ユーザー |
|
提出日時 | 2023-06-17 20:39:38 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 618 ms / 2,000 ms |
コード長 | 965 bytes |
コンパイル時間 | 366 ms |
コンパイル使用メモリ | 82,292 KB |
実行使用メモリ | 81,148 KB |
最終ジャッジ日時 | 2024-06-25 10:27:20 |
合計ジャッジ時間 | 8,253 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 26 |
ソースコード
from heapq import heapify, heappop, heappushn, k = map(int, input().split())sx, sy, gx, gy = map(int, input().split())P = [list(map(int, input().split())) for _ in range(n)]P = [[sx, sy]] + P + [[gx, gy]]D = [[0 for _ in range(n + 2)] for _ in range(n + 2)]for i in range(n + 2):for j in range(n + 2):D[i][j] = abs(P[i][0] - P[j][0]) + abs(P[i][1] - P[j][1])INF = 10**18l, r = 0, INFwhile r - l > 1:mid = (l + r) // 2C = [INF for _ in range(n + 2)]C[0] = 0H = [(0, 0)]while H:ccnt, cp = heappop(H)if cp == n + 1:breakif ccnt > C[cp]:continuefor np in range(n + 2):if np == cp:continuencnt = ccnt + (D[cp][np] - 1) // midif ncnt >= C[np]:continueC[np] = ncntheappush(H, (C[np], np))if C[n + 1] > k:l = midelse:r = midprint(r)