Language:

English
Russian

Практикум по программированию

Для участников:
Регистрация  ||   Вход
Список соревнований
Вы не вошли в систему! Вход или регистрация.

Прибавления

Time limit:2 sec.
Memory limit: 262144 KByte

Задан числовой массив A[1..N]. Необходимо выполнить M операций, где каждая операция может быть двух видов:

  1. вывести минимум из всех элементов на отрезке [L, R],
  2. прибавить ко всем элементам на отрезке [L, R] значение V.

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

Первая строка входных данных содержит число N – размер массива.

Во второй строке записаны N чисел – элементы массива.

Третья строка содержит число M – количество запросов.

Следующие M строк содержат по три или четыре целых числа. Первое число T задаёт тип операции: 1, если нужно найти минимум на отрезке, 2 – если нужно прибавить значение к элементам отрезка. Далее идут два либо три числа, смысл которых зависит от T:

  • Если T = 1, то последующие два числа L и R задают отрезок, минимум на котором надо найти.
  • Если T = 2, то последующие три числа L, R и V задают отрезок и значение, которое нужно прибавить ко всем элементам отрезка.

Ограничения: все числа во входных данных натуральные, не превосходящие 105. Также 1 ≤ L ≤ R ≤ N, 1 ≤ i ≤ N.

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

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

Пример

Входные данные
4
3 1 8 7
3
1 1 3
2 2 3 5
1 1 3
Выходные данные
1
3
© Copyright ВоГУ, АВТ, Носов Д.А., Смоленцев К.Н.