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 양은 좌표 $0$에 서 있습니다.

각 참가자는 느림이라고 불리는 값을 가집니다. $i$번째 참가자는 느림 $D_i$를 가집니다. 참가자들은 다음 규칙을 지킵니다:

  • 만약 $i$번째 참가자가 자신의 바로 앞에 있는 사람(참가자 또는 IOI 양)으로부터 $D_i+1$ 이상의 거리에 있다면, $i$번째 참가자는 그 사람으로부터 거리가 $1$인 위치로 이동합니다. 그렇지 않다면, $i$번째 참가자는 이동하지 않습니다.

IOI 양은 단위 시간당 수직선 위에서 양의 방향으로 거리 $1$만큼 이동합니다. 참가자는 위에서 설명한 조건이 만족될 때마다 즉시 이동합니다.

당신은 개막식을 취재하는 기자입니다. 사진을 찍어야 했지만, 개막식 내내 깊이 잠들어 버렸습니다. 어쩔 수 없이 당신은 회장의 사진을 찍은 뒤 그 위에 사람들의 그림을 그려 넣어 속이기로 결정했습니다.

속임수가 들통나지 않기 위해, 또는 그림을 그리는 시간을 추정하기 위해, 당신은 다음 $Q$개의 값을 알고 싶습니다:

  • 시각 $T_j$에 좌표 $L_j$ 이상 $R_j$ 이하에 서 있는 사람의 수 ($1 \le j \le Q$).

과제

각 참가자의 느림과 $Q$개의 질문에 대한 데이터가 주어졌을 때, 각 질문에 대해 조건을 만족하는 사람의 수를 계산하는 프로그램을 작성하십시오.

입력

표준 입력에서 다음 데이터를 읽으십시오.

  • 입력의 첫 번째 줄에는 공백으로 구분된 두 정수 $N$과 $Q$가 주어집니다. 이는 참가자가 $N$명(IOI 양 제외)이고 질문이 $Q$개 있음을 의미합니다.
  • 이어지는 $N$개의 줄 중 $i$번째 줄($1 \le i \le N$)에는 정수 $D_i$가 주어집니다. 이는 앞에서부터 $i$번째 참가자가 느림 $D_i$를 가짐을 의미합니다.
  • 이어지는 $Q$개의 줄 중 $j$번째 줄($1 \le j \le 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 양은 다음과 같이 이동합니다.

아래에서 구간 $[L,R]$은 수직선 위에서 좌표가 $L$ 이상 $R$ 이하인 점들의 집합을 나타냅니다.

  • 시각 $0$에 IOI 양은 좌표 $0$에 서 있습니다. 1번째, 2번째, 3번째 참가자는 각각 좌표 $-1$, $-2$, $-3$에 서 있습니다.
  • 시각 $1$에 IOI 양은 좌표 $1$로 이동합니다. 아무 참가자도 이동하지 않으며, 1번째, 2번째, 3번째 참가자는 각각 좌표 $-1$, $-2$, $-3$에 서 있습니다. 구간 $[2,4]$에 사람이 없으므로 1번째 질문에 대해 0을 출력합니다.
  • 시각 $2$에 IOI 양은 좌표 $2$로 이동합니다. IOI 양과 1번째 참가자 사이의 거리가 이제 $3$이므로, 1번째 참가자는 좌표 $1$로 이동합니다. 1번째, 2번째, 3번째 참가자는 각각 좌표 $1$, $-2$, $-3$에 서 있습니다. 구간 $[2,4]$에는 IOI 양만 있으므로 2번째 질문에 대해 1을 출력합니다.
  • 시각 $3$에 IOI 양은 좌표 $3$으로 이동합니다. 아무 참가자도 이동하지 않으며, 1번째, 2번째, 3번째 참가자는 각각 좌표 $1$, $-2$, $-3$에 서 있습니다. 구간 $[2,4]$에는 IOI 양만 있으므로 3번째 질문에 대해 1을 출력합니다.
  • 시각 $4$에 IOI 양은 좌표 $4$로 이동합니다. IOI 양과 1번째 참가자 사이의 거리가 이제 $3$이므로, 1번째 참가자는 좌표 $3$으로 이동합니다. 1번째, 2번째, 3번째 참가자는 각각 좌표 $3$, $-2$, $-3$에 서 있습니다. 구간 $[2,4]$에는 IOI 양과 1번째 참가자가 있으므로 4번째 질문에 대해 2를 출력합니다.
  • 시각 $5$에 IOI 양은 좌표 $5$로 이동합니다. 아무 참가자도 이동하지 않으며, 1번째, 2번째, 3번째 참가자는 각각 좌표 $3$, $-2$, $-3$에 서 있습니다. 구간 $[2,4]$에는 1번째 참가자만 있으므로 5번째 질문에 대해 1을 출력합니다.
  • 시각 $6$에 IOI 양은 좌표 $6$으로 이동합니다. IOI 양과 1번째 참가자 사이의 거리가 이제 $3$이므로, 1번째 참가자는 좌표 $5$로 이동합니다. 그러면 1번째 참가자와 2번째 참가자 사이의 거리가 이제 $7$이므로, 2번째 참가자는 좌표 $4$로 이동합니다. 나아가 2번째 참가자와 3번째 참가자 사이의 거리가 이제 $7$이므로, 3번째 참가자는 좌표 $3$으로 이동합니다. 1번째, 2번째, 3번째 참가자는 각각 좌표 $5$, $4$, $3$에 서 있습니다. 구간 $[2,4]$에는 2번째와 3번째 참가자가 있으므로 6번째 질문에 대해 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.