Ограничения: время – 1s/2s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Вася идет из школы домой вдоль проспекта, по которому ходят трамваи. Мама считает, что ему после школы
полезно дышать свежим воздухом, поэтому настаивает, чтобы не менее `K` метров он прошел пешком.
Вася при этом хочет попасть домой как можно быстрее (обязательно выполнив требование мамы).
Вдоль проспекта расположено `N` трамвайных остановок, которые находятся в
точках `a_1,\ a_2,\ …,\ a_N` (все координаты задаются в метрах). Школа находится около 1-й остановки, а
дом – около остановки номер `N`. Мальчик идет пешком со скоростью `v` метров в минуту. Трамвай
едет со скоростью `w` метров в минуту (временем стоянки трамвая на остановках пренебрежем). В нулевой
момент времени и далее с интервалом `T` минут от первой остановки в сторону
Васиного дома отправляются трамваи. Вася выходит из школы также в момент времени 0. Сесть в
трамвай и выйти из него можно только на остановке. При этом, если Вася приходит на остановку
раньше трамвая, на который хочет сесть, то ему придется подождать, пока тот не подъедет. Вася
идет пешком и едет на трамвае только в направлении от школы к дому.
Напишите программу, которая определит, когда Вася сможет оказаться дома.
Сначала вводится число `N` – количество остановок (`1\ ≤\ N\ ≤\ 2000`). Далее заданы координаты
остановок `a_1,\ a_2,\ …,\ a_N` (`0\ ≤\ a_1\ <\ a_2\ <\ …\ <\ a_N\ ≤\ 10^9`). Далее вводится интервал
движения трамваев `T` (`1\ ≤\ T\ ≤\ 2000`). Затем расстояние, не меньше которого
Вася должен пройти пешком `K` (`0\ ≤\ K\ ≤\ 2000`). Затем заданы скорости Васи `v` и
трамвая `w` (`1\ ≤\ v\ ≤\ w\ ≤\ 10\ 000`). Все вводимые числа целые. `K` не превышает длины пути от школы до дома.
В первую строку выведите не менее чем с пятью знаками после десятичной точки одно число – минимальное
время, когда Вася сможет оказаться дома, пройдя пешком не менее `K` метров. Далее нужно
вывести информацию о пути Васи. Занумеруем промежутки между
соседними остановками числами от 1 до `N-1` (то есть промежуток между
первой и второй остановками имеет номер 1, между второй и третьей – 2 и так далее). Следующая строка
должна содержать количество промежутков, пройденных Васей пешком. Далее выведите
номера этих промежутков в возрастающем порядке.
Пример ввода 1
3
0 10 30
5
10
1 5
Пример вывода 1
16.000000
1
1
Пример ввода 2
4
0 3 8 11
1
6
1 3
Пример вывода 2
7.666667
2
1
3
Источник: Московская олимпиада школьников по информатике, 2010/11 учебный год