AT_joisp2025_l ういろう (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, \ldots, 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.(3 分)$N \leq 20$,$Q \leq 20$。
2.(5 分)$N \leq 300$,$Q \leq 20$。
3.(7 分)$N \leq 5\,000$,$Q \leq 20$。
4.(15 分)$Q \leq 20$。
5.(21 分)$A_i \leq 2$($1 \leq i \leq N$)。
6.(29 分)$A_i \leq 20$($1 \leq i \leq N$)。
7.(20 分)无其他额外限制。
---
## 样例解释 1
第一次游戏可以如下进行:
- 首先,黑板上写 $0$。
- 然后,将卡片 $1, 2, 3$ 依次从左到右排列。
- 当前黑板上的数为 $0$,第 1 张卡片上的数为 $3$,擦掉 $0$,写下 $3$。
- 当前黑板上的数为 $3$,第 2 张卡片上的数为 $4$,擦掉 $3$,写下 $7$。
- 当前黑板上的数为 $7$,第 3 张卡片上的数为 $7$,擦掉 $7$,写下 $0$,吃 1 个ういろう。
此时本次游戏中吃到ういろう的数量为 1,且不能超过 1。因此,输出 1。
第二次游戏如下:
- 首先,黑板上写 $0$。
- 然后,将卡片 $4$ 排列在桌上。
- 当前黑板上的数为 $0$,第 1 张卡片上的数为 $2$,擦掉 $0$,写下 $2$。
此时本次游戏中吃到ういろう的数量为 0,且不能超过 0。因此,输出 0。
本输入样例满足子任务 1, 2, 3, 4, 6, 7 的限制。
---
## 样例解释 2
第一次游戏可以如下进行:
- 首先,黑板上写 $0$。
- 然后,将卡片 $1, 2$ 依次从左到右排列。
- 当前黑板上的数为 $0$,第 1 张卡片上的数为 $1$,擦掉 $0$,写下 $1$。
- 当前黑板上的数为 $1$,第 2 张卡片上的数为 $2$,擦掉 $1$,写下 $3$。
此时本次游戏中吃到ういろう的数量为 0,且不能超过 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 翻译