QOJ.ac

QOJ

Time Limit: 1.0 s Memory Limit: 256 MB Total points: 100 Hackable ✓

#14436. Конструирование роботов

Statistics

У вас есть возможность создавать роботов с высотой из отрезка $[0, d]$. Чтобы протестировать их, вы построили полосу длины $n$, содержащую некоторые препятствия. Описание препятствий задано массивом $a$. Если $a_i = 0$, то в $i$-й позиции препятствия нет, а иначе там находится препятствие высоты $a_i > 0$.

Чтобы протестировать робота, вы выбираете отрезок $[l, r]$ и проводите его через все препятствия на этом отрезке. Когда робот встречает препятствие со значением $a_i > 0$, происходит одно из двух:

  • Если текущая высота робота $h$ меньше $a_i$, то ничего не происходит, так как робот слишком низкий и не задевает препятствие.
  • Если текущая высота робота $h$ хотя бы $a_i$, то новая высота становится равной $h' = h - a_i$.

Теперь вам нужно ответить на $q$ запросов. Для каждого из $q$ отрезков $[l_i, r_i]$ определите максимально возможную итоговую высоту робота после прохождения всех препятствий на этом отрезке, если начальная высота выбирается из интервала $[0, d]$.

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

Первая строка содержит целые числа $n, q, d$ ($1 \le n, q \le 3 \cdot 10^5, 1 \le d \le 10^9$) — длину массива и количество запросов.

Вторая строка содержит $n$ целых чисел $a_i$ ($0 \le a_i \le 10^9$) — описание массива.

Следующие $q$ строк содержат пары целых чисел $[l_i, r_i]$ ($1 \le l_i \le r_i \le n$) — описание запросов.

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

Выведите $q$ целых чисел — ответы на запросы.

Примеры

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

5 3 5
0 2 6 1 3
5 5
1 5
1 3

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

2
2
3

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

7 5 10
7 6 2 5 0 1 4
1 3
1 7
4 7
2 5
4 6

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

3
2
3
3
4

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#374EditorialOpen题解jianglyView

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.