Дан циклический массив a0, a1, ..., an - 1. Есть два типа операций:
- inc(lf, rg, v) — увеличить каждый элемент на отрезке [lf, rg] (включительно) на v;
- rmq(lf, rg) — найти минимальное значение на отрезке [lf, rg] (включительно).
Мы считаем, что все отрезки — циклические, например если n = 5 и lf = 3, rg = 1, то имеется в виду последовательность индексов: 3, 4, 0, 1.
Напишите программу, которая будет выполнять заданную последовательность операций.
Выходные данные
Для каждой операции rmq выведите ее результат. Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать поток cout (также вы можете использовать спецификатор %I64d).
Примеры
| № | Входные данные | Выходные данные |
|
1
|
4 1 2 3 4 4 3 0 3 0 -1 0 1 2 1
|
1
0
0
|