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

Задача . Counting Haybales


Задача

Темы:

Ферма Джона состоит из \(N\) полей в ряд последовательно пронумерованных \(1 \ldots N\). На каждом поле может быть произвольное количество стогов сена. Инструкции ФД бывают трёх видов:

1) Добавить один стог к каждому полю в указанном интервале

2) Определить минимальное количество стогов сена внутри указанного непрерывного интервала полей.

3) Посчитать суммарное количество стогов сена внутри указанного непрерывного интервала.

ФОРМАТ ВВОДА (файл haybales.in):

Первая строка содержит два положительных целых числа \(N\) (\(1 \leq N \leq 200,000\)) и \(Q\) (\(1 \leq Q \leq 100,000\)).

Следующая строка содержит \(N\) неотрицательных целых чисел, каждое не более, чем 100,000, указывающих, сколько стогов сена было изначально на каждом поле.

Каждая из следующих \(Q\) строк содержит одну большую латинскую букву M, P или S, за которой следуют два положительных целых числа \(A\) and \(B\) (\(1 \leq A \leq B \leq N\)), или три положительных целых числа \(A\), \(B\), and \(C\) (\(1 \leq A \leq B \leq N\); \(1 \leq C \leq 100,000\)). 3 числа будет только в том случае, если первая буква P.

Если первая буква M выведите минимальное количество стогов сена в интервале полей \(A \ldots B\).

Если первая буква P, добавьте по \(C\) стогов сена в каждое поле в интервале \(A \ldots B\).

Если первая буква S, выведите суммарное количество стогов сена в интервале полей \(A \ldots B\).

ФОРМАТ ВЫВОДА (файл haybales.out):

Строка в выводе должна появится в ответ на каждый запрос вида M или S.


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

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

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