eolymp
bolt
Try our new interface for solving problems
Məsələlər

Кухонный робот

Кухонный робот

Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 256 MiB

Роботы со временем становятся все популярнее. Сегодня их используют не только на больших заводах, но и в домашних условиях. Один программист вместе со своими друзьями решили создать своего собственного домашнего робота. Как Вы знаете, большинство программистов любит собираться на вечеринки и пить пиво. После ее завершения на столе остается множество пустых бутылок. Поэтому было решено создать робота, который будет способен собрать пустые бутылки со стола.

Стол представляет собой прямоугольник с длиной l и шириной w. Робот стартует с точки (x_r, y_r) и n бутылок находится в точках (x_i, y_i)~(1 \le i \le n). Для того чтобы забрать бутылку, робот должен переместиться в точку где она расположена и взять ее, после чего отнести бутылку в некоторую точку на границе стола и отпустить ее. В любой момент времени робот может держать только одну бутылку, а отпускать ее только на границе стола.

Размеры бутылок и робота считайте пренебрежимо малыми (робот и бутылки являются точками). Роботу, держащему бутылку, можно передвигаться через точку, в которой находится другая бутылка.

Одной из подпрограмм робота является планирование маршрута. Вам следует написать программу, которая найдет маршрут минимальной длины, по которому робот соберет все бутылки.

Giriş verilənləri

Первая строка содержит два целых числа w и l~(2 \le w, l \le 1000) — ширина и длина стола.

Вторая строка содержит количество бутылок на столе n~(1 \le n \le 18). Каждая из следующих n строк содержит два целых числа x_i и y_i~(0 < x_i < w, 0 < y_i < l) — координаты i-ой бутылки. Никакие две бутылки не располагаются в одной точке.

Последняя строка содержит два целых числа x_r и y_r~(0 < x_r < w, 0 < y_r < l) — координаты начального положения робота. Робот не находится в одной точке ни с какой бутылкой.

Çıxış verilənləri

Вывести длину кратчайшего пути, по которому робот соберет все бутылки. Ошибка точности вычислений не должна превышать 10^{-6}.

Nümunə

Giriş verilənləri #1
3 4
2
1 1
2 3
2 1
Çıxış verilənləri #1
5.60555127546399
Müəllif Fedor Tsarev
Mənbə 2010 ACM NEERC, Northern Subregion, October 30, Problem K