printРабочее место участника

printЗадачи

661. Мышь

Ограничения: время – 2s/4s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Движение мыши по коврику приводит к движению указателя на экране. Сдвиг на `K` миллиметров по поверхности коврика дает сдвиг на 1 миллиметр на экране. Так как коврик имеет небольшие размеры, при достижении края приходится поднимать мышь и переносить ее в центр коврика.
Дана информация о тех передвижениях, которые необходимо проделать на экране. Требуется определить расстояние, которое мышь проделала по поверхности коврика, и расстояние, которое мышь пролетела по воздуху. В начальном состоянии мышь находится в центре коврика, направление осей координат совпадает со сторонами коврика. При достижении края коврика мышь перемещается в начальное положение. Движение указателя на экране от одной заданной точки к другой происходит по прямой, также по прямой происходит перемещение мыши от края коврика к его центру.
Первая строка ввода содержит четыре целых числа: количество перемещений указателя на экране `N` (`1\ ≤\ N\ ≤5`), соотношение между сдвигом мыши по коврику и указателя на экране `K` (`1\ ≤\ K\ ≤\ 10`), ширина коврика `W` (`100\ ≤\ W\ ≤\ 1000`) и высота коврика `H` (`100\ ≤\ H\ ≤\ 1000`). Далее следует `N` строк, содержащих по два целых числа в диапазоне от –100 до 100 – разница координат на экране между точкой, где находится указатель, и точкой, куда нужно попасть.
Вывести два числа – расстояние, пройденное мышью по коврику, и расстояние, пройденное мышью по воздуху, с точностью `10^{-3}`.

Пример ввода

2 2 120 100
5 15
15 10

Вывод для примера

67.678 64.031
loading