EduBrick

O. НОД при прибавлениях

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

Дан массив. Запросы: прибавить xx ко всем элементам отрезка и узнать наибольший общий делитель элементов отрезка.

Пометки для этого нет: зная только НОД отрезка, нельзя сказать, чему он станет равен после прибавления. Но есть тождество, которое всё решает.

Формат ввода

В первой строке nn и mm (1≤n,m≤1051 \le n, m \le 10^5). Во второй — nn чисел aia_i (1≤ai≤1091 \le a_i \le 10^9). Далее mm строк: a l r x — прибавить xx на отрезке (∣x∣≤109|x| \le 10^9), или g l r — НОД на отрезке.

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

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

Примеры

ввод
5 4
6 12 18 5 10
g 1 3
g 4 5
a 1 3 6
g 1 3
вывод
6
5
6
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.