Скалярний добуток
Проста
Обмеження на час виконання 2 секунди
Обмеження на використання пам'яті 256 мегабайтів
Задано два масиви A і B однакової довжини. Потрібно виконати три типи запитів.
* l r x: додати число x до всіх елементів
A[i]
, де l ≤ i ≤ r.. l r x: додати число x до всіх елементів
B[i]
, де l ≤ i ≤ r.? l r: обчислити суму
A[l]
·B[l]
+ ... +A[r]
·B[r]
.
Масиви індексуються з 1. Спочатку обидва масиви заповнені нулями.
Вхідні дані
Перший рядок містить два числа n і m (1 ≤ n, m ≤ 100000) - довжина масивів і кількість запитів. Наступні m рядків містять запити у вказаному вище форматі. У кожному запиті 1 ≤ l ≤ r ≤ n і 1 ≤ x < 10^9
+ 7.
Вихідні дані
Для кожного запиту третього типу вивести в окремому рядку відповідь за модулем 10^9
+ 7.
Приклади
Вхідні дані #1
Відповідь #1
Відправки 201
Коефіцієнт прийняття 22%