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

Діма та машина часу

Діма та машина часу

Мама подарувала хлопчику Дімі машину часу. Нажаль, ця машина працює лише з вмонтованим у неї масивом довжины n. Вона може відновити масив до стану на довільний момент часу. Масив у машині також не простий, а особливий. Діма може вибрати три числа - i, j та d (1ijn, -1000d1000), і до усіх елементів масиву з індексами від i до j магічно додасться d. Діма бавиться зі своїм масивом, а мама час від часу задає йому питання - яка сума усіх чисел у масиві з індексами від f до t? Діма легко впорався з цими запитаннями, а чи зможете ви?

Вхідні дані

У першому рядку знаходяться два цілих числа n та q (1n, q105) - кількість елементів у масиві та сумарна кількість операцій та запитів відповідно. У наступному рядку задано n чисел a1, a2, ..., an (-1000ai1000) - початковий стан масиву. У наступних q рядках задано операції та запити. Перший символ у рядку може бути t, + або ?. Якщо рядок починається з t, то це опис операції з машиною часу. Тоді у рядку міститься ще одне число i (1i) - номер операції чи запиту, до стану перед виконанням якої повертається масив. i завжди не більше номера поточної операції. Якщо рядок починається з +, то це операція додавання. Далі йдуть i, j та d, обмеження на які описано в умові. Якщо рядок починається з ?, то це запит. Далі йдуть числа f та t (1f, tn).

Вихідні дані

Для кожного запиту виведіть суму чисел у масиві з індексами від f до t, по одному результату в рядку.

Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
3 5
1 2 3
? 1 3
+ 2 3 1
? 1 3
t 1
? 1 3
Вихідні дані #1
6
8
6
Автор Єгор Куліков
Джерело Зимова Школа Харків 2012