10958. Скелі
На планеті Олімпія робітники будують нову греблю. Частина площини, на якій проводяться будівельні роботи, має вигляд прямокутника розміром \(1 х L\) метрів, на якому введені координати, як показано на малюнку.
Для підняття ландшафту використовують спеціально розроблені магічні імпульсатори. Якщо магічний імпульсатор силою \(H\) поставити в точку з \(𝑋\) -координатою \(𝑝\) , то в кожній точці \(𝑞\) відрізка [\(𝑝 –𝐻 ;𝑝 \)] на осі \(𝑋\) рельєф піднімається на \(𝑞 –𝑝+𝐻\) метрів по всій його ширині ( тобто для довільного \(Z\) від 0 до 1), а в кожній точці \(𝑞\) відрізка [\(𝑝 ;𝑝+𝐻 \)] рельєф піднімається на \(𝐻+𝑝 -𝑞\) метрів по всій його ширині, в інших точках ландшафт залишається незмінним (див. малюнок).
Під час будівництва робітники іноді цікавляться обсягом частини дамби, що знаходиться над деяким прямокутником.
Напишіть програму, яка допоможе робітникам у їхніх розрахунках.
Формат вхідних даних
У першому рядку вхідного файлу містяться два цілих числа: \(N\) – кількість операцій, які виконуватимуть робочі (\(1≤𝑁 ≤100000\)), та \(𝐿\) – довжина прямокутника (\(1≤𝐿 ≤100000\)).
У наступних рядках містяться описи операцій: перше число рядка – номер операції, де „1” означає, що робітники збираються поставити магічний імпульсатор, „2” – робітники хочуть дізнатися певний обсяг. Якщо операція має код „1”, далі йдуть два цілих числа \(𝑝\) і \(𝐻\) (\(0≤𝑝 ≤𝐿\) ; \(1≤𝐻 ≤𝐿\) ), тобто імпульсатор силою \(𝐻\) ставлять у позицію \(p\) (на осі \(𝑋\) ). Якщо операція має код „2”, далі йдуть два цілих числа \(𝐴\) і \(𝐵\) (\(0≤𝐴 <𝐵 ≤𝐿\) ); це означає, що робітники хочуть дізнатися об'єм частини дамби, яка знаходиться над прямокутником від \(𝐴\) до \(𝐵\) по осі \(𝑋\) , і від 0 до 1 по осі \(𝑍\) .
Формат вихідних даних
Створіть вихідний файл, у якому для кожної операції, вказаної у вхідному файлі, виведіть рядок з наступною інформацією. Якщо операція є „1”, виведіть число „-1” без лапок. Якщо операція є „2”, то виведіть число заокруглене вниз до найближчого цілого, що дорівнює об'єму частини дамби, яка знаходиться над прямокутником від \(𝐴\) до \(𝐵\) по осі \(𝑋\) , і від 0 до 1 по осі ~𝑍` , як показано на малюнку.
Приклад вхідних даних
2 13
1 7 5
2 5 9
Приклад вихідних даних
-1
16
Коментарі