Задачі
Шестикутні палички
Шестикутні палички
Розглянемо нескічннну шестикутну сітку. Сітка складається з однакових правильних шестикутних комірок, рохміщених як показано нижче. На рисунку також подана система координат, яка використовується для ідентифікації кожної комірки. Кожна комірка сітки може бути або порожньою, або заблокованою.
\includegraphics{https://static.e-olymp.com/content/fc/fc4392946d0b7e3f453b9bc09a28d87131ac92e3.jpg}
Рисунок: Частина сітки
Декілька паличок поклали довільним чином на сітку. Довжина кожної палички рівна одній "шестикутній одиниці". Це значить, що кінці палички розміщені у центрах сусідніх комірок. Вам потрібно перемістити палички таким чином, щоб отримати замкнений правильний шестикутник.
На рисунках нижче наведено приклади замкнених шестикутників, зроблених з паличок.
Вам задані початкові координати паличок, розміщених на сітці. Також будуть задані координати заблокованих комірок. За один хід можна здійснити одну з наступних операцій:
\begin{itemize}
\item Виберіть одну паличку і викиньте її
\item Виберіть одну паличку і поверніть її на \textbf{60} градусів за/проти годинникової стрілки навколог одного з її кінців
\item Виберіть одну паличку і проштовхніть її на довжину палички.
\end{itemize}
Палички ніколи не повинні займати заблоковані комірки. Проте дві палички можуть займати одну і ту ж комірку одночасно.
\includegraphics{https://static.e-olymp.com/content/f3/f370d56009d79fcc415baed0b0456497a61e60e3.jpg}
Розглянемо стан сітки вище. Перепона знаходиться у комірці з координатами (\textbf{1}, \textbf{1}), а кінці паличок у комірках (\textbf{0}, \textbf{0}) - (\textbf{1}, \textbf{0}). Чотири можливі операції над паличкою подано нижче
По завершенню усіх операцій на сітці повинен утвортись замкнений правильний шестикутник без паличок, що лежать навколо. Це значить, що на сітці знаходиться у точності \textbf{6*x} паличок, де \textbf{x} - натуральне число. Чи можете Ви зробити це за \textit{найменшу }кількість операцій?
\InputFile
Перший рядок містить кількість тестів\textbf{ T} (\textbf{T} < \textbf{50}). Кожен тест починається з кількості наявних паличок \textbf{S} (\textbf{S} < \textbf{9}). Наступні \textbf{S} рядків описують координати паличок у форматі \textbf{x_1 y_1 x_2 y_2}, що позначає паличку від \textbf{(x_1, y_1)} до \textbf{(x_2, y_2)}. Координати коректні, а довжина кожної палички дорівнює шестикутній одиниці, як вказано вище. У наступному рядку задається кількість перепон \textbf{B} ( \textbf{B} < \textbf{20}). Кожен з наступних \textbf{B} рядків задає координати перепон. Координати мають формат \textbf{x_1 y_1}. Гарантується, що перепони не перетинаються з жодною з паличок. Усі координати (паличок та перепон) лежать у проміжку \textbf{\[-4, 4\]}.
Примітка: Пам'ятайте, що ми маємо справу з нескінченною сіткою. Тому у відповіді координати паличок можуть лежати поза проміжком \textbf{\[-4, 4\]}.
\OutputFile
Для кожного тесту вивести його номер, за яким йде найменша кількість потрібних операцій. Якщо сфорувати шестикутник з паличок неможливо, то вивести "\textbf{impossible}". Дотримуйтесь наведеного формату вхідних та вихідних даних.
Вхідні дані #1
3 6 -1 -1 -1 0 -1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 -1 0 -1 -1 -1 0 5 -1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 -1 0 -1 -1 -1 0 7 -2 -2 -2 -1 -1 -1 -1 0 0 0 1 1 0 0 1 1 0 0 1 1 1 1 2 2 1 2 2 2 2 1 0 2 0
Вихідні дані #1
Case 1: 0 Case 2: impossible Case 3: 9