AT_joigsp2025_k ういろう (Uiro)
题目描述
葵有 $N$ 张卡片,每张卡片上标有 $1$ 到 $N$ 的编号。每张卡片上写有一个正整数,对于卡片 $i$($1 \leq i \leq N$),其上写的整数为 $A_i$。
葵将用卡片和黑板进行 $Q$ 次游戏。第 $j$ 次($1 \leq j \leq Q$)游戏规则如下:
- 在黑板上写上 $0$。
- 将卡片 $L_j, L_j + 1, \dots, R_j$ 按顺序从左到右排成一行。
- 此后共进行 $R_j - L_j + 1$ 次操作。第 $k$ 次($1 \leq k \leq R_j - L_j + 1$)操作如下:
- 记当前黑板上的整数为 $x$,排在第 $k$ 个的卡片上的整数为 $y$。先擦掉 $x$,在黑板上写上 $x + y$ 或 $x - y$。如果写的是 $x - y$,则吃掉 $1$ 个“ういろう”(日式点心)。
- 但是,不能在黑板上写下小于 $0$ 的整数。
你需要求出,对于每次游戏,葵最多能吃多少个“ういろう”。
现在给定卡片和游戏的信息,请编写程序,计算每次游戏中葵最多能吃多少个“ういろう”。
输入格式
输入以如下格式由标准输入给出:
> $N$ $A_1$ $A_2$ $\cdots$ $A_N$ $Q$ $L_1$ $R_1$ $L_2$ $R_2$ $\vdots$ $L_Q$ $R_Q$
输出格式
输出共 $Q$ 行,第 $j$ 行($1 \leq j \leq Q$)输出第 $j$ 次游戏中葵最多能吃到的“ういろう”数量。
说明/提示
## 子任务
1.(7 分)$N \leq 20$,$Q \leq 20$。
2.(11 分)$N \leq 300$,$Q \leq 20$。
3.(15 分)$N \leq 5\,000$,$Q \leq 20$。
4.(24 分)$Q \leq 20$。
5.(21 分)$A_i \leq 2$($1 \leq i \leq N$)。
6.(14 分)$A_i \leq 20$($1 \leq i \leq N$)。
7.(8 分)无其他限制。
---
## 样例解释 1
第 $1$ 次游戏可能如下:
- 首先在黑板写 $0$。
- 然后将卡片 $1,2,3$ 按顺序排列。
- 当前黑板上的数为 $0$,第 $1$ 张卡片上的数为 $3$。将黑板改写为 $3$。
- 当前黑板上的数为 $3$,第 $2$ 张卡片上的数为 $4$。将黑板改写为 $7$。
- 当前黑板上的数为 $7$,第 $3$ 张卡片上的数为 $7$。将黑板改写为 $0$,并吃掉 $1$ 个ういろう。
此时,第 $1$ 次游戏最多能吃 $1$ 个ういろう,提高到 $2$ 个是不可能的。因此输出 $1$。
第 $2$ 次游戏可能如下:
- 首先在黑板写 $0$。
- 然后排列卡片 $4$。
- 当前黑板上的数为 $0$,第 $4$ 张卡片上的数为 $2$。将黑板改写为 $2$。
此时,第 $2$ 次游戏最多能吃 $0$ 个ういろう,不可能更高。因此输出 $0$。
此输入样例满足子任务 $1,2,3,4,6,7$ 的约束。
---
## 样例解释 2
第 $1$ 次游戏可能如下:
- 首先在黑板写 $0$。
- 然后排列卡片 $1,2$。
- 当前黑板上的数为 $0$,第 $1$ 张卡片上的数为 $1$。将黑板改写为 $1$。
- 当前黑板上的数为 $1$,第 $2$ 张卡片上的数为 $2$。将黑板改写为 $3$。
此时,第 $1$ 次游戏最多能吃 $0$ 个ういろう,不可能更高。因此输出 $0$。
此输入样例满足所有子任务的约束。
---
## 样例解释 3
此输入样例满足子任务 $1,2,3,4,7$ 的约束。
# 数据范围
- $1 \leq N \leq 200\,000$。
- $1 \leq A_i \leq 100$($1 \leq i \leq N$)。
- $1 \leq Q \leq 200\,000$。
- $1 \leq L_j \leq R_j \leq N$($1 \leq j \leq Q$)。
- 输入的所有数均为整数。
由 ChatGPT 5 翻译