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

Воскование

Воскование

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

Никто из рабочих не хочет работать больше других. Все они настаивают на совместной работе: каждый из них хочет увидеть если кто-то будет лентяйничать. Вы должны назначить каждому сотруднику одинаковые площади в каждой комнате. Каждый работник получает непрерывный участок пола для покрытия его воском. Назначенные части отделены друг от друга отрезками прямых линий, исходящих из дверного проема и идущих к стене в комнате. Это сделано для того, чтобы выйти из комнаты можно было только после того как работа будет сделана.

Входные данные

Каждый тест состоит из одной строки:

WIDTH HEIGHT DOOR WORKERS

Каждое число является неотрицательным целым, не большее 100, как минимум с 2 рабочими и положительными WIDTH и HEIGHT. Они задают положения вершин углов комнаты: (0, 0), (WIDTH, 0), (WIDTH, HEIGHT) и (0, HEIGHT), а также расположение двери: (DOOR, 0), (0 < DOOR < WIDTH).

Последняя строка содержит 4 нуля:

0 0 0 0

Выходные данные

Вывести с 3 десятичными знаками концы WORKERS - 1 отрезков, простирающихся от двери до стен комнаты таким образом, чтобы они разделяли комнату на WORKERS частей одинаковой площади. Точки следует выводить в порядке обхода против часовой стрелки.

Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
3 5 2 4
10 10 5 2
10 10 5 4
0 0 0 0
Выходные данные #1
2.500 5.000 1.000 5.000 0.000 3.750
5.000 10.000
10.000 10.000 5.000 10.000 0.000 10.000
Источник 2009 ACM North America - Rocky Mountain, Problem I