eolymp
bolt
Try our new interface for solving problems
Problems

Скалы

Скалы

\includegraphics{https://static.e-olymp.com/content/c1/c13f92d67db32d4d698ce62a0201c57b82463f43.jpg} На планете Олимпия рабочие строят новую дамбу. Часть плоскости, на которой проводятся строительные работы, имеет вид прямоугольника размером \textbf{1}×\textbf{L }метров, на котором введены координаты, как показано на рисунке. Для поднятия ландшафта используют специально разработанные магические импульсаторы. Если магический импульсатор силой \textbf{H }поставить в точку с \textbf{X}-координатой \textbf{p}, то в каждой точке \textbf{q }отрезка \[\textbf{p-H}; \textbf{p}\] на оси \textbf{X }рельеф поднимается на \textbf{q - p + H }метров по всей его ширине (то есть для произвольного \textbf{Z }от \textbf{0 }до \textbf{1}), а в каждой точке \textbf{q }отрезка \[\textbf{p}; \textbf{p + H}\] рельеф поднимается на \textbf{H + p - q }метров по всей его ширине, в остальных точках ландшафт остается неизменным (см. рисунок). Во время строительства рабочие время от времени интересуются объёмом части дамбы, находящейся над некоторым прямоугольником. Напишите программу, которая поможет рабочим в их расчётах. \InputFile В первой строке содержатся два целых числа: \textbf{N }- количество операций, которые будут выполнять рабочие (\textbf{1 }≤ \textbf{N }≤ \textbf{100000}), и \textbf{L }- длина прямоугольника (\textbf{1 }≤ \textbf{L }≤ \textbf{100000}). В следующих \textbf{N }строках содержатся описания операций: первое число строки - номер операции, где "\textbf{1}" означает, что рабочие собираются поставить магический импульсатор, "\textbf{2}" - рабочие хотят узнать некоторый объём. Если операция имеет код "\textbf{1}", то далее идут два целых числа \textbf{p }и \textbf{H }(\textbf{0 }≤ \textbf{p }≤ \textbf{L}; \textbf{1 }≤ \textbf{H }≤ \textbf{L}), то есть импульсатор силой \textbf{H }ставят в позицию \textbf{p }(на оси \textbf{X}). Если операция имеет код "\textbf{2}", то далее идут два целых числа \textbf{A }и \textbf{B }(\textbf{0 }≤ \textbf{A }< \textbf{B }≤ \textbf{L}); это означает, что рабочие хотят узнать объём части дамбы, которая находится над прямоугольником от \textbf{A }до \textbf{B }по оси \textbf{X}, и от \textbf{0 }до \textbf{1 }по оси \textbf{Z}. \OutputFile Для каждой входной операции выведите строку со следующей информацией. Если операция есть "\textbf{1}", то выведите число "\textbf{-1}" без кавычек. Если операция есть "\textbf{2}", то выведите целую часть числа, равного объёму части дамбы, которая находится над прямоугольником от \textbf{A }до \textbf{B }по оси \textbf{X}, и от \textbf{0 }до \textbf{1 }по оси \textbf{Z}, как показано на рисунке.
Time limit 1 second
Memory limit 64 MiB
Input example #1
2 13
1 7 5
2 5 9
Output example #1
-1
16
Author Bogdan Yakovenko
Source 2005 XVIII All-Ukrainian Informatics Olympiad, Rovno, April 10 - 16, Round 2