Вода
Кто возьмет билетов пачку,
Тот получит водокачку!
из к/ф «Бриллиантовая рука»
Виталий является директором небольшой водопроводной компании. Он работает на водокачке. Водокачка представляет собой цилиндр высотой H метров, изначально целиком заполненный водой.
Водокачка очень старая, поэтому в ней постоянно появляются дыры. Периодически Виталий устраняет некоторые течи. Виталия как директора очень интересует уровень воды в водонапорной башне, но каждый раз лезть по лестнице, чтобы заглянуть в башню, ему не хочется.
Напишите программу, которая могла бы обрабатывать следующие запросы:
- В момент времени t появилась течь на высоте h со скоростью вытекания воды v.
- В момент времени t Виталий устранил все течи на высоте h.
- В момент времени t Виталий хотел бы узнать уровень воды.
Вода вытекает из отверстия, только если уровень воды выше высоты отверстия. Изначально водокачка полна. Скорость вытекания воды v означает, что за единицу времени через отверстие вытекает объем воды, соответствующий v метрам воды в водокачке.
Технические условия
Входные данные
В первой строке содержится два целых числа n и H (1 ≤ n ≤ 105; 1 ≤ H ≤ 109) — количество запросов и высота водонапорной башни. Далее следуют n строк описывающих запросы. В каждой строке первое число k (1 ≤ k ≤ 3) — номер типа запроса. Далее в строке в зависимости от запроса идут от одного до трех целых чисел из t, h и v (0 ≤ t ≤ 109; 0 ≤ h ≤ H; 1 ≤ v ≤ 10-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 |
| ← Подстрока | Список задач | Длинный корень → |
