結果
| 問題 |
No.2436 Min Diff Distance
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-08-18 22:10:58 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,345 bytes |
| コンパイル時間 | 506 ms |
| コンパイル使用メモリ | 81,408 KB |
| 実行使用メモリ | 142,160 KB |
| 最終ジャッジ日時 | 2024-11-28 07:38:14 |
| 合計ジャッジ時間 | 15,750 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 7 WA * 16 |
ソースコード
import sys, time, random
from collections import deque, Counter, defaultdict
input = lambda: sys.stdin.readline().rstrip()
ii = lambda: int(input())
mi = lambda: map(int, input().split())
li = lambda: list(mi())
inf = 2 ** 63 - 1
mod = 998244353
n = ii()
XY = [li() + [i] for i in range(n)]
mini = [inf] * n
XY.sort(key = lambda x: x[0])
for i in range(n):
x1, y1, ind1 = XY[i]
if i > 0:
x2, y2, _ = XY[i - 1]
mini[ind1] = min(mini[ind1], abs(x1 - x2) + abs(y1 - y2))
if i < n - 1:
x2, y2, _ = XY[i + 1]
mini[ind1] = min(mini[ind1], abs(x1 - x2) + abs(y1 - y2))
XY.sort(key = lambda x: x[1])
for i in range(n):
x1, y1, ind1 = XY[i]
if i > 0:
x2, y2, _ = XY[i - 1]
mini[ind1] = min(mini[ind1], abs(x1 - x2) + abs(y1 - y2))
if i < n - 1:
x2, y2, _ = XY[i + 1]
mini[ind1] = min(mini[ind1], abs(x1 - x2) + abs(y1 - y2))
xmax = -inf
xmin = inf
ymax = -inf
ymin = inf
for i in range(n):
x, y, ind = XY[i]
XY[i] = [x + y, x - y, ind]
xmax = max(xmax, x + y)
xmin = min(xmin, x + y)
ymax = max(ymax, x - y)
ymin = min(ymin, x - y)
maxi = [0] * n
for i in range(n):
x, y, ind = XY[i]
maxi[ind] = max(xmax - x, x - xmin, ymax - y, y - ymin)
ans = inf
for i in range(n):
ans = min(ans, maxi[i] - mini[i])
print(ans)