#A. 跑操

    Type: Default File IO: run 1000ms 512MiB

跑操

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

跑操(run\texttt{run}

【题目描述】

小 D 的学校的操场上有 n+1n+1 个学生在跑操,他们的编号依次为 0,1,,n0,1,\dots,n

操场可以被看成一根无限长的一维数轴,对于第 ii 个人,其初始位置在 i-i 上。

每秒内,学生会按 0,1,n0,1,\dots n 的顺序依次按如下规则移动:

  • 00 个学生每秒向正方向移动 11 的距离。
  • ii 个学生(1in1\le i\le n)如果与第 i1i-1 的学生的距离 >di>d_i,那么他会移动到第 i1i-1 个学生的上一个位置。

小 D 突然想到了 qq 个询问,第 ii 个询问需要你求出第 tit_i 秒在 [li,ri][l_i,r_i] 范围内的学生数量。

你能回答小 D 的 qq 个询问吗?

【输入格式】

run.in\texttt{run.in} 中读入数据。

第一行两个整数 n,qn,q

第二行 nn 个整数,第 ii 个正整数表示 did_i

接下来 qq 行,每行三个整数,分别表示 ti,li,rit_i,l_i,r_i

【输出格式】

输出到 run.out\texttt{run.out} 中。

输出 qq 行,每行一个整数,第 ii 行表示第 ii 次询问的答案。

【样例 1 输入】

3 2
1 2 2
1 1 5
2 0 1

【样例 1 输出】

1
2

【样例 1 解释】

四个学生的位置变化如下:

  • 00 秒:[0,1,2,3][0,-1,-2,-3]
  • 11 秒:[1,0,2,3][1,0,-2,-3]
  • 22 秒:[2,1,0,1][2,1,0,-1]

【样例 2】

见下发文件中的 run2.in\texttt{run2.in}run2.ans\texttt{run2.ans}

【样例 3】

见下发文件中的 run3.in\texttt{run3.in}run3.ans\texttt{run3.ans}

【数据范围】

对于所有测试数据有:$1\le n,q\le5 \times 10^5,1\le d_i,t_i\le 10^9,0\le l_i\le r_i\le 10^9$。

子任务编号 分值 特殊限制
Subtask 1\text{Subtask 1} 55 n,q,ti,li,ri10n,q,t_i,l_i,r_i\le 10
Subtask 2\text{Subtask 2} 2525 n,q,ti,li,ri1000n,q,t_i,l_i,r_i\le 1000
Subtask 3\text{Subtask 3} 7070 无特殊限制

NOIP 模拟赛(二)

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2023-10-25 8:00
End at
2023-10-25 12:00
Duration
4 hour(s)
Host
Partic.
15