eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Хексзмії у хексболоті

Хексзмії у хексболоті

Хексболото - це дивний тип болота, вимощеного правильними шестикутними ямками. Хексзмії повзають у ньому, будучи адаптованими до навколишнього середовища. Вони являють собою ланцюжок правильних шестикутників, кожен з яких строго повністю поміщається в одну шестикутну ямочку. Хексзмії переміщують свої секції з ямок у яких вони знаходяться, на сусідні. Щоб не зламати своє тіло, частини хексзмій, які були сусідніми до здійснення переміщення, залишаються сусідніми і після. Коли рухається одна з секцій, то секції, що прилягають до неї, сприяють руху і тому не можуть рухатись у той же самий час. Довільне число секцій, ніякі дві з яких не є сусідніми, можуть переміщуватись одночасно. Можно помітити, що хексзмія може пересувати свої секції, які знаходяться на кінцях, у одну з двох ямок, а проміжні секції лише в одну, якщо така існує. Наприклад, у випадку відсутності перешкод, хексзмії можуть повзти вперед, звиваючи своє тіло, як показано на \textit{\textbf{Рисунку 1}}, зліва направо. На рисунку змія у кожен момент часу переміщує чотире свої частини тіла з вісьми, і пересуває усе своє тіло вперед на довжину однієї ямки після чотирьох кроків руху. Насправді, вони набагато краще повзають боком, ніби рослини, що в'ються. \includegraphics{https://static.e-olymp.com/content/50/5021aa33766454a74d69d4a9fe100ccbd209c76d.jpg} \textit{\textbf{Рисунок1}}: Повзання вперед Їхня кожа настільки липка, що якщо дві секції які спочатку не були сусідніми, попадуть у сусідні ямки (\textit{\textbf{Рисунок 2}}), то вони склеяться разом і змія помре. Дві секції не можуть поміститись у одній ямці. Це звичайно ж сковує пересування змії. Іноді їм приходиться прикласти деякі зусилля, щоб дістати шматок іжі, навіть якщо він знаходиться у ямці поруч з головою. \includegraphics{https://static.e-olymp.com/content/ee/ee154c095b6dc3e2326be5465cc091dea32ad54f.jpg} \textit{\textbf{Рисунок 2}}: Смертельний випадок І там і тут на хексболоті знаходяться скали. Каждая скала поміщається у точності в одну ямку. Кожа хексзмій не прилипає до скаль, проте змії не можуть заповзати на них. І хоча ямки зі скелями обмежують пересування змій, вони у свою чергу добре знають географію місцевості і можуть планувати своє пересування по найкоротшому маршруту. Вас призначили керівником групи вчених, яка займається проведенням наукови досліджень змій на цьому болоті. Вам потрібно завершити розпочате дослідження, але не на будь-яку шкоду. Ваша задача - оцінити як швидко хексзмія, яка харчується людьми, перемістить свою голову (першу секцію) у позицію болота, де знаходиться вчений. Секції тіла змії крім голови безвредні, і вчений, одітий у хай-тек антиприлипаючий костюм, може знаходитись у довільній з секцій тіла у одній ямці. \InputFile Вхідні дані складаються з декількох тестів, останній рядок містить один нуль. Кількість тестів не перевищує \textbf{10}. Кожен тест має наступний формат. \textbf{кількість секцій у змії (=n)} \textbf{x1 y1} \textbf{x2 y2} \textbf{...} \textbf{xn yn} \textbf{кількість скал на болоті (=k)} \textbf{u1 v1} \textbf{u2 v2} \textbf{...} \textbf{uk vk} \textbf{X Y} Перший рядок кожного тесту містить число \textbf{n} - кількість секцій у змії, воно рівне \textbf{2} або більше, але ніколи не перевищує \textbf{8}. Кожен з наступних \textbf{n} рядків містит \textbf{x} та \textbf{y} координати секції змії. Рядки описують початкове положення секцій у порядку від голови до хвоста. Наступний рядок задає кількість скал \textbf{k} у болоті, це число не від'ємне і не перевищує \textbf{100}. Кожен з наступних \textbf{k} рядків містить два цілих числа \textbf{u} та \textbf{v} - положення скали. Останній рядок містить два цілих числа \textbf{X} та \textbf{Y} - позиція, куди необхідно приповзти змії. Голова змії спочатку тут не знаходиться. Усі значення координат \textbf{x}, \textbf{y}, \textbf{u}, \textbf{v}, \textbf{X} та \textbf{Y} лежать в інтервалі від \textbf{-999999} до \textbf{999999} включно. Два числа у рядку відокремлено одним пропуском. У вхідних даних не зустрічаються інші символи, крім як десяткові цифри, знак минус та пропуски, що їх розділяють. Система координат, яка кодує позиції, показана на \textit{\textbf{Рисунку 3}}. \includegraphics{https://static.e-olymp.com/content/18/18768539d454ef07ce4981a03ee5642bdbba5b25.jpg} \textit{\textbf{Рисунок 3}}: Система координат \OutputFile Для коного тесту вивести рядок, який містить ціле число - найменшу кількість крокі, необхідних змії пересунути свою голову у заданую позицію. Вихідні рядки не повинні містити ніяких інших символів. Вважайте, що хексзмії можуть знайти розв'язок не більш ніж за \textbf{20} колків.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
3
2 -2
2 -1
1 0
1
0 2
0 0
4
2 -2
2 -1
2 0
3 0
2
1 -1
0 2
0 0
8
-6 0
-5 0
-4 0
-3 0
-2 0
-1 0
0 0
1 0
1
-1 1
0 0
6
2 -3
3 -3
3 -2
3 -1
3 0
2 1
3
1 -1
1 0
1 1
0 0
3
-8000 4996
-8000 4997
-8000 4998
2
-7999 4999
-8001 5000
-8000 5000
8
10 -8
9 -7
9 -6
9 -5
9 -4
9 -3
9 -2
9 -1
0
0 0
0
Вихідні дані #1
3
9
18
18
19
20