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

Скалярний добуток

Скалярний добуток

Заданы два массива A и B одинаковой длины. Необходимо обработать три вида запросов.

  • * l r x: добавить число x ко всем Ai, где lir.
  • . l r x: добавить число x ко всем Bi, где lir.
  • ? l r: вычислить сумму Al · Bl + ... + Ar · Br.

Массивы индексируются с 1. Изначально оба массива заполнены нулями.

Входные данные

Первая строка содержит два числа n и m (1n, m100000) - длины массивов и количество запросов. Следующие m строк содержат запросы в описанном выше формате. В каждом запросе 1lrn и 1x < 109+ 7.

Выходные данные

Для каждого запроса третьего типа вывести в отдельной строке ответ по модулю 109 + 7.

Ліміт часу 2 секунди
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
5 4
* 1 4 10
. 2 5 8
? 1 3
? 2 5
Вихідні дані #1
160
240
Джерело 2013 Петрозаводск, MIPT contest, Август 25, Задача K