Время

13:59:52
24 May 2012
Версия для печати

Вода

Кто возьмет билетов пачку,
Тот получит водокачку!

из к/ф «Бриллиантовая рука»

   Виталий является директором небольшой водопроводной компании. Он работает на водокачке. Водокачка представляет собой цилиндр высотой H метров, изначально целиком заполненный водой.

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

   Напишите программу, которая могла бы обрабатывать следующие запросы:

  1. В момент времени t появилась течь на высоте h со скоростью вытекания воды v.
  2. В момент времени t Виталий устранил все течи на высоте h.
  3. В момент времени t Виталий хотел бы узнать уровень воды.

   Вода вытекает из отверстия, только если уровень воды выше высоты отверстия. Изначально водокачка полна. Скорость вытекания воды v означает, что за единицу времени через отверстие вытекает объем воды, соответствующий v метрам воды в водокачке.


Технические условия

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

   В первой строке содержится два целых числа n и H (1 ≤ n105; 1H109) — количество запросов и высота водонапорной башни. Далее следуют n строк описывающих запросы. В каждой строке первое число k (1k3) — номер типа запроса. Далее в строке в зависимости от запроса идут от одного до трех целых чисел из  t, h и v (0t109; 0hH; 1v10-9). Запросы перечислены в порядке увеличения времени и никакие два запроса не имеют одинаковое время.

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

   На каждый запрос третьего типа выведите одно число — уровень воды в водонапорной башне в соответствующий момент времени.

   Ответ должен иметь относительную или абсолютную точность 10-9. Это означает, что если правильный  ответ равен a, а выведено p, то значение будет признано правильным, если |a -p |/ max(a, 1)10-9.


Информация о задаче

Лимит времени: 2 секунды
Лимит памяти: 64 MB
Баллы за пройденный тест: 2.7027
Сложность: 90% 1/10
Классификация: Моделирование

Пример

Пример входных данных

6 10
1 0 1 2
3 1
3 2
2 3 1
3 4
3 5

Пример выходных данных

8.0
6.0
4.0
4.0


← Подстрока Список задач Длинный корень →