EduBrick

C. Прибавление по остатку

2000 мс · 256 МБ · всё или ничего

Дан массив из nn чисел. Операция «прибавить xx ко всем элементам, индекс которых даёт остаток rr при делении на dd» и запрос значения одного элемента.

Формат ввода

В первой строке nn и mm (1≤n,m≤2⋅1051 \le n, m \le 2 \cdot 10^5). Во второй строке nn целых чисел aia_i (0≤ai≤1090 \le a_i \le 10^9), индексы от 11 до nn.

В следующих mm строках операции. Операция 1 d r x (1≤d≤n1 \le d \le n, 0≤r<d0 \le r < d, 1≤x≤1091 \le x \le 10^9) — прибавить xx ко всем aia_i, у которых i mod d=ri \bmod d = r. Операция 2 p (1≤p≤n1 \le p \le n) — узнать текущее значение apa_p.

Формат вывода

Для каждой операции второго вида выведите ответ в отдельной строке.

Примеры

ввод
5 6
1 2 3 4 5
1 2 0 10
2 2
2 3
1 5 1 100
2 1
2 4
вывод
12
3
101
14
ввод
1 3
0
2 1
1 1 0 7
2 1
вывод
0
7
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.