Основа піраміди#278

Основа піраміди

15 секунд
64 мегабайти
Дуже складна

Вас попросили знайти розмір найбільшої з можливих ділянок для будівництва нової піраміди. Для цього вам надано план ділянки, поділений на сітку з M \times N квадратних клітин. Основа піраміди повинна бути квадратом зі сторонами, паралельними до сітки.

На плані — прямокутних перешкод, паралельних до сторін сітки, які можуть перекриватися. Щоб побудувати піраміду, всі клітини, вкриті основою, мають бути очищені від перешкод.

Видалення -ї перешкоди коштує C_i. Перешкоду потрібно видалити повністю; часткове видалення неможливе. Видалення однієї перешкоди не впливає на інші.

Напишіть програму, яка за , описом перешкод , вартістю видалення кожної та бюджетом знаходить найбільшу сторону квадрата основи піраміди, щоб сумарна вартість очищення не перевищувала .

Програму перевірятимуть на трьох окремих наборах тестів. Для всіх справджуються обмеження:

1 \leq M, N \leq 1\ 000\ 000
1 \leq C_i \leq 7\ 000
1 \leq X_{i1} \leq X_{i2} \leq M
1 \leq Y_{i1} \leq Y_{i2} \leq N

Вхідні дані

Програма читає вхід у такому форматі:

- Рядок : два цілих числа (1 \leq M, N \leq 1\ 000\ 000) — розміри сітки. - Рядок : ціле число , ваш бюджет. - Рядок : ціле число , кількість перешкод. - Далі рядків: X_{i1}\ Y_{i1}\ X_{i2}\ Y_{i2}\ C_i (1 \leq X_{i1} \leq X_{i2} \leq M, 1 \leq Y_{i1} \leq Y_{i2} \leq N) — координати лівої нижньої та правої верхньої клітини перешкоди і вартість видалення.

Ліва нижня клітина сітки — , права верхня — (M, N).

Вихідні дані

Виведіть одне ціле число — максимальну можливу сторону основи піраміди. Якщо побудувати неможливо, виведіть .

Приклади

Приклад 1

Loading
Loading