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

Дорожные пробки

Дорожные пробки

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

Мы изучим относительно простую математическую модель дорожного затора. Предположим, что имеющаяся дорога состоит из n полос, пронумерованных от 1 до n, на i-ой полосе движение происходит со скоростью bi + ai * sin(t + deltai) в момент времени t. Известно, что неравенство bi > ai всегда имеет место, то есть скорость движения всегда положительна. Вы можете сменить полосу движения в любой момент времени, причем c * |x - y| времени займет смена полосы x на полосу y. Мы предполагаем, что Вы не продвигаетесь вперед в течение этого периода.

Определите время, за которое Вы преодолеете расстояние d, а также способ достижения этого времени. Вы стартуете в момент времени 0 на полосе 1, финишировать Вы можете на любой полосе.

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

Первая строка содержит два целых числа n и d, а также действительное число c (1n5, 1d1000, 0.001c1000). Следующие n строк описывают полосы, каждая из которых содержит два целых числа ai и bi и действительное число deltai (0ai < bi100, 0deltai < 2 * pi).

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

В первой строке выведите минимальное время, необходимое для перемещения на расстояние d. Во второй строке выведите количество k изменений полосы движения, необходимых для этого. Значение k не должно быть больше 106. Гарантируется, что всегда существует оптимальная стратегия, требующая не более 106 изменений полос движения. В следующих k строках выведите сами изменения: каждая строка должна содержать новый номер полосы и время начала изменения. Изменения должны выводиться в хронологическом порядке. Если имеется несколько возможных решений, то выведите любой.

Числа с плавающей точкой следует выводить с максимальной точностью. Ваше решение будет считаться правильным, если проверка вашего расписания не приведет к несоответствиям более чем на 10-6 (при проверке пройденного расстояния, при проверке того, что изменения полосы движения не перекрываются и так далее). Поэтому Вам лучше вывести не менее 10 - 12 десятичных знаков в каждом действительном числе.

Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 128 MiB
Giriş verilənləri #1
1 100 0.5
4 5 0
Çıxış verilənləri #1
19.71726232777025
0
Giriş verilənləri #2
3 100 0.5
4 5 0
2 5 0.5
0 5 0
Çıxış verilənləri #2
19.052103083697858
4
2 3.6645304897691258
1 5.783185307179586
2 9.947715796948712
3 15.207963267948966
Mənbə 2007 Петрозаводск, Petr Mitrichev Contest 2, Январь 30, Задача F