EduBrick

E. Присваивание на отрезке

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

Запросы двух видов: присвоить значение xx всем элементам отрезка и узнать минимум на отрезке.

Метка снова нужна, но она другого сорта - «присвоить», а не «прибавить». Разница существенная.

метка как складываются две подряд
прибавить xx, потом yy прибавить x+yx + y
присвоить xx, потом yy присвоить yy - вторая затирает первую
прибавить xx, потом присвоить yy присвоить yy
присвоить xx, потом прибавить yy присвоить x+yx + y

Здесь метки только присваивающие, и потому всё просто: у блока либо есть метка, либо нет.

Формат ввода

В первой строке - числа nn и qq (1≤n,q≤2⋅1051 \le n, q \le 2 \cdot 10^5).

Во второй - nn чисел, по модулю не превосходящих 10910^9.

Далее qq строк. «1 l r x» - присвоить xx на отрезке. «2 l r» - минимум на отрезке.

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

На каждый запрос второго типа выведите минимум.

Примеры

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