Прямокутник і точки
Limits: 2 sec., 512 MiB
Дано прямокутник розміром \(n \times m\) на координатній площині. Лівий нижній кут прямокутника знаходиться в точці \((0, 0)\), а правий верхній — в точці \((n, m)\). Всередині цього прямокутника розташовано \(k\) точок.
Потрібно перемістити прямокутник (не обертаючи і не змінюючи його розмірів) так, щоб всі \(k\) точок опинилися на межах або поза межами прямокутника. Переміщення може здійснюватися у будь-якому напрямку на площині. Відстань, на яку перемістили прямокутник, визначається як евклідова відстань між початковим положенням лівого нижнього кута \((0, 0)\) та новим положенням цього кута \((dx, dy)\).
Ваше завдання — знайти мінімальну відстань, на яку потрібно перемістити прямокутник, щоб кожна з \(k\) точок опинилася на межах або поза межами прямокутника.
Input
Перший рядок містить три цілі числа \(n\), \(m\), \(k\) — розміри прямокутника та кількість точок всередині нього.
Наступні \(k\) рядків містять по два цілі числа \(x_i\), \(y_i\) — координати точок, розташованих всередині прямокутника.
Output
Виведіть одне число — мінімальну евклідову відстань, на яку потрібно перемістити прямокутник, щоб усі \(k\) точок опинилися поза його межами.
Constraints
\(2 \leq n, m \leq 10^9\),
\(1 \leq k \leq 2 \cdot 10^5\),
\(1 \leq x_i < n,\ 1 \leq y_i < m\).
Samples
Input (stdin) | Output (stdout) |
---|---|
10 10 3 1 4 2 2 3 1 | 2.2360679775 |
Notes
Відстань між двома точками \((x_1, y_1)\) та \((x_2, y_2)\) обчислюється за формулою \(\sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}\).
Червоним кольором показано прямокутник після переміщення, його лівий нижній кут знаходиться в точці \((2, 1)\). Тому відстань на яку було пересунуто рахуємо як dist((0,0), (2,1)) = \(\sqrt{(2 - 0)^2 + (1 - 0)^2} = 2.2360679775\).
Submit a solution
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|
Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
---|