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

Шестикутні ділянки

Шестикутні ділянки

Інженер-будівельник, який нещодавно закінчив Чешський технічний університет, зіткнувся з цікавою проблемою і звернувся до нас за допомогою. Проблема має більше економічний, ніж інженерний характер. Інженеру потрібно підключити декілька будівель до інфраструктури. На жаль, інвестор не є власником усієї землі між цими місцями. Таким чином, деякі ділянки повинні бути куплені у першу чергу. Земля являє собою сітку правильних шестикутних ділянок землі, кожна з яких є самостійною частиною і має одну і ту ж вартість. Деякі ділянки належать інвестору. Вони утворюють чотири суміжні області, кожна з яких містить одну будівлю, яка должна бути з'єднана з іншими. Вам потрібно знайти найменшу кількість земельних ділянок, придбання яких достатньо для об'єднання заданих чотирьох областей. \includegraphics{https://static.e-olymp.com/content/75/757a5e7c1b40130cf052936e3f9695192e24a66b.jpg} Уся земля має шестикутну форму, кожна її частина з шести сторін містить \textbf{h} ділянок. На рисунку зверху зображена земля, у якої \textbf{h = 4}. Ділянки з буквами являють собою чотири області, які необхідно об'єднати між собою. Для наведеного прикладу достатньо додатковно придбати чотири ділянки. Один з можливих розв'язків позначено хрестиками. \InputFile Вхідні дані складаються з декількох тестів. Кожен тест починається з цілого числа \textbf{h} (\textbf{2} ≤ \textbf{h} ≤ \textbf{20}) - розміру землі. Далі йде \textbf{2h-1} рядків, які описують окремі "рядки" землі (орієнтовані завжди як на картинці). Кожна з ділянок у рядках позначена символом, відмінним від пропуска. Це значить, що перший рядок містить \textbf{h} символів, другий \textbf{h+1} і так далі. Самий довгий рядок міститься у середині з \textbf{2h-1 }символами. Далі "довжина" зменшується, і останній рядок знову містить \textbf{h} ділянок. Ділянка позначається точкою ("\textbf{.}") для земель, якими не володіє інвестор, або однією з великих букв "\textbf{A}", "\textbf{B}", "\textbf{C}" чи "\textbf{D}". Області, у яких знаходяться однакові букви, завжди зв'язні одна з одною. Тобто між довільними двома ділянками однієї області завжди існує шлях, який проходить по ділянкам цієї області. Крім символів, які задають земельні ділянки, рядки можуть містити довільгу кількість пропусків у довільній позиції для покращення "читабельності" вхідних даних. Між двома буквами (крапками) завжди присутній хоча б один пропуск. За описом землі йде порожній рядок, після чого йде наступний тест. За останнім тестом йде рядок, який містить нуль. \OutputFile Для кожного тесту вивести один рядок - речення "\textbf{You have to buy p parcels.}", де \textbf{p} - найменша кількість ділянок, які потрібно придбати для того, щоб зв'язати усі чотири області разом. Області вважаються зв'язними, якщо між ними існує шлях лише через придбані ділянки.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
4 
   B . . C 
  . . . . C 
 . A . . C . 
. A A . . . . 
 . A . . . . 
  . . . D D 
   . . . . 

0
Вихідні дані #1
You have to buy 4 parcels.