JustCaptain kod-buduschego
fb76709a56ac3b52d88ac79d26e74cc4267d61b2
Перейти к файлу
Код
kod-buduschego C++Дополнительные задачи4-senior04. Круговой RMQ.md
anc добавил допольнительные задачи b2eaa8d 3 недели назад
04. Круговой RMQ.md

04. Круговой RMQ#

🎯 Уровень 🔴 Senior
🔗 Источник Codeforces 52C — Circular RMQ
📊 Сложность 2200
🏷️ Темы дерево отрезков, ленивые операции

📝 Условие#

Циклический массив. Запросы: прибавить v на дуге [l, r] и найти минимум на дуге [l, r].

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

В первой строке число n (1 ≤ n ≤ 2·10⁵). Во второй — n чисел a_0 … a_{n−1}. В третьей — число m операций. Далее m строк: lf rg — запрос минимума, lf rg v — прибавить v. Если lf > rg, отрезок идёт по кругу через конец массива.

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

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

🧪 Тесты#

Тест 1#

Ввод:

4
1 2 3 4
4
3 0
3 0 -1
0 1
2 1

Вывод:

1
0
0

Тест 2#

Ввод:

3
5 -2 7
3
0 2
1 1 10
0 2

Вывод:

-2
5

Заметка

Оригинальное условие и проверка решения на всех тестах — по ссылке на источник.

💡 Подсказка#

Открыть, если застрял(а) больше чем на 20 минут

Ленивое дерево отрезков; дугу при l > r разбейте на два отрезка.


⬅️ К списку задач уровня