Олимпиадный тренинг

Задача . G. Периодическая задача RMQ


Дан массив a, состоящий из натуральных чисел, и q запросов к нему. Запросы бывают двух видов:

  • 1 l r x — для всех таких индексов i, что l ≤ i ≤ r, присвоить ai = x.
  • 2 l r — найти минимум по всем таким ai, что l ≤ i ≤ r.

Мы решили, что эта задача слишком простая. Поэтому массив a задаётся в сжатом виде: во входном файле записаны массив b длины n и число k, а изначальный массив a — это k раз подряд записанный массив b (таким образом, длина массива a равна n·k).

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

В первой строке записаны два числа n и k (1 ≤ n ≤ 105, 1 ≤ k ≤ 104).

Во второй строке записано n чисел — элементы массива b (1 ≤ bi ≤ 109).

В третьей строке записано количество запросов q (1 ≤ q ≤ 105).

Далее следуют q строк — описания запросов. Каждый запрос задаётся либо в формате 1 l r x — заменить все числа на отрезке массива от l до r включительно на x (1 ≤ l ≤ r ≤ n·k, 1 ≤ x ≤ 109), либо в формате 2 l r — найти минимум по всем числам на отрезке от l до r (1 ≤ l ≤ r ≤ n·k).

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

Для каждого запроса 2 типа выведите ответ на него — число, равное минимуму на соответствующем подотрезке в момент запроса.


Примеры
Входные данныеВыходные данные
1 3 1
1 2 3
3
2 1 3
1 1 2 4
2 1 3
1
3
2 3 2
1 2 3
5
2 4 4
1 4 4 5
2 4 4
1 1 6 1
2 6 6
1
5
1

time 4000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя