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

Воскование

Воскование

Вы являетесь подрядчиком группы препирающихся сотрудников, занимающихся обработкой пола. Вам необходимо заставить этих сотрудников работать вместе, чтобы они покрыли пол воском в некоторых комнатах, каждая из которых имеет 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 частей одинаковой площади. Точки следует выводить в порядке обхода против часовой стрелки.

Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
3 5 2 4
10 10 5 2
10 10 5 4
0 0 0 0
Çıxış verilənləri #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
Mənbə 2009 ACM North America - Rocky Mountain, Problem I