eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Скелі

Скелі

\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}, як показано на рисунку.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
2 13
1 7 5
2 5 9
Вихідні дані #1
-1
16
Автор Богдан Яковенко
Джерело 2005 XVIII Всеукраїнська олімпіада з інформатики, Рівне, Квітень 10 - 16, тур 2