Розбиття на прямокутники
Limits: 2 sec., 256 MiB
У Марічки на площині є точки \((x, y)\) для всіх таких цілих чисел \(x, y\), що \(0 \le x < n, 0 \le y < m\). Вона з’єднала деякі \(k\) пар точок між собою.
Зеник хоче розбити всю область на прямокутники так, аби з’єднані між собою точки належали різним прямокутникам. Для цього він вибирає натуральні числа \(a\) та \(b\) такі, що \(a \le n, b \le m\), і проводить горизонтальну лінію кожні \(a\) точок і вертикальну — кожні \(b\) точок. Отже, область буде розділена на \(\left \lceil{\frac{n}{a}}\right \rceil \cdot \left \lceil{\frac{m}{b}}\right \rceil\) (ділення із заокругленням угору) прямокутників. Більш формально, точка \((x, y)\) належатиме прямокутнику з координатами \(\left(\left \lfloor{\frac{x}{a}}\right \rfloor, \left \lfloor{\frac{y}{b}}\right \rfloor \right)\) (цілочисельне ділення).
Марічка сказала Зеникові, що вона не любить маленькі прямокутники. Тому Зеник повинен максимізувати добуток \(a \cdot b\).
Допоможіть Зеникові, напишіть йому програму.
Input
У першому рядку є три цілі числа \(n\), \(m\), \(k\).
У наступних \(k\) рядках є по чотири цілих числа \(x_1, y_1, x_2, y_2\). Це означає, що точка \((x_1, y_1)\) з’єднана з точкою \((x_2, y_2)\).
Output
В одному рядку виведіть ціле число — максимально можливий добуток \(a \cdot b\).
Constraints
\(1 \le n, m \le 200\),
\(1 \le k \le 10^5\),
\(0 \le x < n, 0 \le y < m\) для всіх точок, що зустрічаються у вводі,
\((x_1, y_1) \ne (x_2, y_2)\) для всіх пар точок, що з’єднані між собою,
кожна пара точок, що з’єднані між собою, зустрічається тільки один раз,
для 15 тестів виконуються додаткові обмеження \(n, m \le 100, k \le 10^3\).
Samples
Input (stdin) | Output (stdout) |
---|---|
4 7 7 0 6 1 2 1 3 2 2 3 4 2 0 3 2 1 1 0 1 0 4 0 5 3 5 3 6 1 6 | 9 |
Notes
У прикладі оптимально вибрати \(a=3,b=3\).
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 |
---|