#P15939. [JOI Final 2026] 传奇团子吃家 / Legendary Dango Eater

    ID: 29341 远端评测题 2500ms 1024MiB 尝试: 0 已通过: 0 难度: 8 上传者: 标签>线段树倍增并查集JOI(日本)2026

[JOI Final 2026] 传奇团子吃家 / Legendary Dango Eater

题目描述

Bitaro 买了一长串团子作为零食。这串团子可以用 NN 个正整数 A1,A2,,ANA_1, A_2, \cdots, A_N 表示如下。对于每个满足 0iN0 \leq i \leq N 的整数 ii,令 si=A1+A2++Ais_i = A_1 + A_2 + \cdots + A_i。特别地,我们定义 s0=0s_0 = 0

  • 这串团子由 sNs_N 个团子组成,从上到下排成一列。
  • 每个团子要么是甜的,要么是辣的。每个团子的口味可以描述如下。
    • 如果 ii 是一个满足 1iN1 \leq i \leq N 的奇数,那么从上往下数第 (si1+1)(s_{i-1} + 1) 个到第 sis_i 个团子是甜的。
    • 如果 ii 是一个满足 1iN1 \leq i \leq N 的偶数,那么从上往下数第 (si1+1)(s_{i-1} + 1) 个到第 sis_i 个团子是辣的。

在吃这串团子时,Bitaro 制订了 QQ 种可能的计划。第 jj 个计划(1jQ1 \leq j \leq Q)由满足 1LjRjN1 \leq L_j \leq R_j \leq N 的整数 LjL_jRjR_j 表示,在这个计划中,他吃掉从上往下数第 (sLj1+1)(s_{L_j-1} + 1) 个到第 sRjs_{R_j} 个团子。

此外,在吃这串团子时,Bitaro 决定按照以下方式将其分成几口来吃。这里,KK 是一个正整数,代表 Bitaro 对甜度的偏好。

  • 他从上到下吃团子,并且每个团子恰好被吃一次。
  • 在一口中,他可以吃掉串上任意正数个连续的团子。如果在那一口吃掉的团子中,甜团子的数量减去辣团子的数量至少为 KK,那么 Bitaro 就会感到满足。

给定关于这串团子和计划的信息,编写一个程序,对于每个计划,计算 Bitaro 能够感到满足的最大可能次数。

输入格式

从标准输入读取以下数据。

NN QQ KK
A1A_1 A2A_2 \cdots ANA_N
L1L_1 R1R_1
L2L_2 R2R_2
\vdots
LQL_Q RQR_Q

输出格式

向标准输出写入 QQ 行。在第 jj 行(1jQ1 \leq j \leq Q),输出在第 jj 个计划中 Bitaro 能够感到满足的最大次数。

5 2 1
2 1 2 4 3
1 5
2 4
7
2
5 2 3
2 1 2 4 3
1 5
2 4
2
0
9 4 50
24 26 89 45 84 72 15 31 66
1 9
2 8
4 6
5 6
3
2
1
1

提示

样例 1

对于第一个计划,Bitaro 吃掉从上往下数第 11 到第 1212 个团子。通过反复从顶部每口恰好吃一个团子,Bitaro 可以感到满足 77 次。因为不可能让他感到满足 88 次或更多,所以你应该输出 77

对于第二个计划,Bitaro 吃掉从上往下数第 33 到第 99 个团子。通过反复从顶部每口恰好吃一个团子,Bitaro 可以感到满足 22 次。因为不可能让他感到满足 33 次或更多,所以你应该输出 22

这个样例输入满足所有子任务的约束条件。

样例 2

这与样例输入 11 仅在 KK 的值上有所不同。 对于第一个计划,Bitaro 可以通过分以下四口吃团子来感到满足 22 次。

  • 第一口,他吃掉从上往下数第 11 到第 55 个团子。由于甜团子的数量为 44,辣团子的数量为 11,Bitaro 感到满足。
  • 第二口,他只吃掉从上往下数第 66 个团子。由于甜团子的数量为 00,辣团子的数量为 11,Bitaro 没有感到满足。
  • 第三口,他吃掉从上往下数第 77 到第 99 个团子。由于甜团子的数量为 00,辣团子的数量为 33,Bitaro 没有感到满足。
  • 第四口,他吃掉从上往下数第 1010 到第 1212 个团子。由于甜团子的数量为 33,辣团子的数量为 00,Bitaro 感到满足。

因为不可能让他感到满足 33 次或更多,所以你应该输出 22。 对于第二个计划,Bitaro 不可能以让他至少感到满足一次的方式吃团子,所以你应该输出 00

这个样例输入满足子任务 1,3,4,5,61,3,4,5,6 的约束条件。

样例 3

这个样例输入满足子任务 1,4,5,61,4,5,6 的约束条件。

约束条件

  • 1N5000001 \leq N \leq 500000
  • 1Q5000001 \leq Q \leq 500000
  • 1K10141 \leq K \leq 10^{14}
  • 1Ai1091 \leq A_i \leq 10^9 (1iN1 \leq i \leq N)。
  • 1LjRjN1 \leq L_j \leq R_j \leq N (1jQ1 \leq j \leq Q)。
  • 给定的值都是整数。

子任务

  1. (6 分) Q10Q \leq 10
  2. (5 分) K2K \leq 2
  3. (18 分) K10K \leq 10
  4. (27 分) A1+A2++AN500000A_1 + A_2 + \cdots + A_N \leq 500\,000
  5. (17 分) N200000N \leq 200\,000, Q200000Q \leq 200\,000
  6. (27 分) 无附加限制。