Обслуговування номерів
Ви працюєте в компанії, яка проектує милі, смішні робот-пилососи. На високому рівні поведінка роботів поділена на три режими:
Дослідження
Прибирання
Повстання проти людства
На жаль, споживчі тести показали, що останні два режими працюють ідеально, тоді як режим дослідження все ще має помилки. Вам доручено відлагодити його.
На початку режиму дослідження робот розміщується в кімнаті з опуклим багатокутником. У нього є датчики, які повинні повідомляти про розташування всіх стін. Ваше завдання - написати програму, яка перевіряє правильність цих показань. Для цього робот повинен фізично торкнутися кожної стіни в кімнаті.
Ваша задача така: знаючи форму кімнати у вигляді опуклого багатокутника з N стінами і початкову точку всередині нього, визначити найкоротший маршрут, який торкається кожної стіни і повертається до . Торкання кута рахується як торкання двох суміжних стін.
Вхідні дані
Кожен тестовий випадок починається з рядка, що містить кількість вершин багатокутника та цілі координати і початкової точки робота . Далі йдуть рядків, кожен з яких містить два цілі числа , , що визначають вершину багатокутника. Вершини наведені у протилежному до годинникової стрілки порядку, всі внутрішні кути менші за градусів, багатокутник не самоперетинається, і початкова точка робота знаходиться строго всередині багатокутника.
Вихідні дані
Для кожного тестового випадку виведіть номер випадку та довжину бажаного маршруту з точністю до двох знаків після коми.