QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#119. Худший репортёр 3

Statistics

На церемонии открытия IOI 2018 $N$ участников идут в колонне по прямой, представленной числовой осью. Все участники движутся в положительном направлении числовой оси. В момент времени $0$ $i$-й участник ($1 \le i \le N$, считая с начала колонны) находится в точке с координатой $-i$. Кроме того, знаменосец IOI-chan находится в точке с координатой $0$.

У каждого участника есть величина, называемая медлительностью. Медлительность $i$-го участника равна $D_i$. Участники соблюдают следующее правило:

  • Если расстояние от $i$-го участника до человека непосредственно перед ним (другого участника или IOI-chan) не меньше $D_i+1$, то $i$-й участник перемещается в точку на расстоянии $1$ от этого человека. Иначе $i$-й участник не двигается.

IOI-chan за единицу времени перемещается на расстояние $1$ в положительном направлении оси. Участник перемещается мгновенно каждый раз, когда выполняется описанное выше условие.

Вы — репортёр, освещающий церемонию открытия. Вы должны были фотографировать, но крепко проспали всю церемонию. Ничего не поделаешь: вы решили схитрить, сфотографировав зал, а затем дорисовав на снимках людей.

Чтобы ваш обман не раскрыли или чтобы оценить время, необходимое для рисования, вы хотите узнать следующие $Q$ величин:

  • количество людей, находящихся в момент времени $T_j$ в точках с координатами от $L_j$ до $R_j$ включительно ($1 \le j \le Q$).

Задание

По медлительности каждого участника и данным $Q$ запросов напишите программу, которая для каждого запроса вычисляет количество людей, удовлетворяющих условию.

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

Прочитайте следующие данные из стандартного ввода.

  • Первая строка содержит два целых числа $N$ и $Q$, разделённых пробелом. Это означает, что есть $N$ участников (без учёта IOI-chan) и $Q$ запросов.
  • $i$-я строка ($1 \le i \le N$) следующих $N$ строк содержит целое число $D_i$. Это означает, что медлительность $i$-го участника с начала колонны равна $D_i$.
  • $j$-я строка ($1 \le j \le Q$) следующих $Q$ строк содержит три целых числа $T_j$, $L_j$ и $R_j$, разделённых пробелами. Эти значения задают $j$-й запрос.

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

Выведите $Q$ строк в стандартный вывод. $j$-я строка ($1 \le j \le Q$) должна содержать ответ на $j$-й запрос.

Ограничения

Все входные данные удовлетворяют следующим условиям.

  • $1 \le N \le 500\,000$.
  • $1 \le Q \le 500\,000$.
  • $1 \le D_i \le 1\,000\,000\,000$ ($1 \le i \le N$).
  • $1 \le T_j \le 1\,000\,000\,000$ ($1 \le j \le Q$).
  • $1 \le L_j \le R_j \le 1\,000\,000\,000$ ($1 \le j \le Q$).

Подзадачи

Есть 3 подзадачи. Баллы и дополнительные ограничения каждой подзадачи приведены ниже:

Подзадача 1 [7 баллов]

  • $D_i=1$ ($1 \le i \le N$).

Подзадача 2 [12 баллов]

  • $N \le 1\,000$.
  • $Q \le 1\,000$.
  • $T_j \le 1\,000$ ($1 \le j \le Q$).
  • $1 \le L_j \le R_j \le 1\,000$ ($1 \le j \le Q$).

Подзадача 3 [81 балл]

Дополнительных ограничений нет.

Примеры

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

3 6
2
5
3
1 2 4
2 2 4
3 2 4
4 2 4
5 2 4
6 2 4

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

0
1
1
2
1
2

Примечание

В этом примере участники и IOI-chan перемещаются следующим образом.

Далее отрезок $[L,R]$ обозначает множество точек числовой оси с координатами от $L$ до $R$ включительно.

  • В момент времени $0$ IOI-chan находится в точке с координатой $0$. Первый, второй и третий участники находятся в точках с координатами $-1$, $-2$ и $-3$ соответственно.
  • В момент времени $1$ IOI-chan перемещается в точку с координатой $1$. Ни один участник не двигается; первый, второй и третий участники находятся в точках с координатами $-1$, $-2$ и $-3$ соответственно. Поскольку на отрезке $[2,4]$ нет людей, для первого запроса выводится 0.
  • В момент времени $2$ IOI-chan перемещается в точку с координатой $2$. Расстояние между IOI-chan и первым участником теперь равно $3$, поэтому первый участник перемещается в точку с координатой $1$. Первый, второй и третий участники находятся в точках с координатами $1$, $-2$ и $-3$ соответственно. Поскольку на отрезке $[2,4]$ находится только IOI-chan, для второго запроса выводится 1.
  • В момент времени $3$ IOI-chan перемещается в точку с координатой $3$. Ни один участник не двигается; первый, второй и третий участники находятся в точках с координатами $1$, $-2$ и $-3$ соответственно. Поскольку на отрезке $[2,4]$ находится только IOI-chan, для третьего запроса выводится 1.
  • В момент времени $4$ IOI-chan перемещается в точку с координатой $4$. Расстояние между IOI-chan и первым участником теперь равно $3$, поэтому первый участник перемещается в точку с координатой $3$. Первый, второй и третий участники находятся в точках с координатами $3$, $-2$ и $-3$ соответственно. Поскольку на отрезке $[2,4]$ находятся IOI-chan и первый участник, для четвёртого запроса выводится 2.
  • В момент времени $5$ IOI-chan перемещается в точку с координатой $5$. Ни один участник не двигается; первый, второй и третий участники находятся в точках с координатами $3$, $-2$ и $-3$ соответственно. Поскольку на отрезке $[2,4]$ находится только первый участник, для пятого запроса выводится 1.
  • В момент времени $6$ IOI-chan перемещается в точку с координатой $6$. Расстояние между IOI-chan и первым участником теперь равно $3$, поэтому первый участник перемещается в точку с координатой $5$. Затем расстояние между первым и вторым участниками становится равным $7$, поэтому второй участник перемещается в точку с координатой $4$. Далее расстояние между вторым и третьим участниками становится равным $7$, поэтому третий участник перемещается в точку с координатой $3$. Первый, второй и третий участники находятся в точках с координатами $5$, $4$ и $3$ соответственно. Поскольку на отрезке $[2,4]$ находятся второй и третий участники, для шестого запроса выводится 2.

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

4 2
1
1
1
1
2 1 4
1 3 6

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

2
0

Примечание

Этот пример удовлетворяет ограничениям подзадачи 1.

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

6 6
11
36
28
80
98
66
36 29 33
190 171 210
18 20 100
1000 900 1100
92 87 99
200 100 300

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

1
6
0
5
2
7

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.