#P15574. [USACO26FEB] Milk Buckets S

[USACO26FEB] Milk Buckets S

说明

NN1N21051\le N\le 2\cdot 10^5)个桶堆叠在一起,从上往下数第 ii 个桶的容量为 aia_i 加仑(1ai1091\le a_i\le 10^9)。最上方桶的上面有一个水龙头,每秒向第一个桶中注入 11 加仑牛奶。桶 NN 的下方有一个池子。

当一个桶在 tt 秒后达到其容量时,它会在第 t+1t+1 秒开始时翻转,将其内容物倒入下方的桶(如果不是最后一个桶)或池子(如果是最后一个桶)(并在第 t+1t+1 秒结束时恢复为接收状态)。桶在翻转期间无法收集牛奶;在这一秒内从上方桶流来的任何牛奶都会损失。此外,任何超过下方桶容量的部分也会损失。

处理 QQ1Q31051\le Q\le 3\cdot 10^5)个查询,每个查询由三个整数 iivvtt 指定:

  • 首先,设置 ai=va_i = v1iN1\le i\le N1v1091\le v\le 10^9)。
  • 然后回答以下问题:假设在时间 00 时,所有桶和池子都是空的。确定在 tt 秒后池子中的牛奶加仑数(1t10181\le t\le 10^{18})。

这些 ai=va_i = v 的更新会持续影响后续查询。

输入格式

第一行包含 NN

第二行包含 a1aNa_1 \dots a_N

下一行包含 QQ

然后接下来的 QQ 行每行包含三个整数 iivvtt。这意味着你应该先设置 ai=va_i = v,然后回答针对 tt 的问题。

输出格式

对每个问题,输出一行答案。

3
1 1 1
30
1 1 1
1 1 2
1 1 3
1 1 4
1 1 5
1 1 6
1 1 7
1 1 8
1 1 9
1 1 10
1 2 1
1 2 2
1 2 3
1 2 4
1 2 5
1 2 6
1 2 7
1 2 8
1 2 9
1 2 10
2 2 1
2 2 2
2 2 3
2 2 4
2 2 5
2 2 6
2 2 7
2 2 8
2 2 9
2 2 10
0
0
0
1
1
2
2
3
3
4
0
0
0
0
1
1
1
2
2
2
0
0
0
0
1
1
1
2
2
2
2
1 2
10
1 1 1
1 1 2
1 1 3
1 1 4
1 1 5
1 1 6
1 1 7
1 1 8
1 1 9
1 1 10
0
0
0
0
2
2
2
2
4
4
3
1 1 1
1
1 1 1000000000000000000
499999999999999999

提示

样例 1 解释

a=[1,1,1]a=[1, 1, 1] 时,

  • 11 在时刻 2,4,6,2,4,6,\dots 翻转
  • 22 在时刻 3,5,7,3,5,7,\dots 翻转
  • 33 在时刻 4,6,8,4,6,8,\dots 翻转

a=[2,1,1]a=[2, 1, 1] 时,

  • 11 在时刻 3,6,9,3,6,9,\dots 翻转
  • 22 在时刻 4,7,10,4,7,10,\dots 翻转
  • 33 在时刻 5,8,11,5,8,11,\dots 翻转

a=[2,2,1]a=[2, 2, 1] 时,

  • 11 在时刻 3,6,9,3,6,9,\dots 翻转
  • 22 在时刻 4,7,10,4,7,10,\dots 翻转
  • 33 在时刻 5,8,11,5,8,11,\dots 翻转

评分标准

  • 输入 4-5:N10N \le 10Q100Q\le 100,且所有 t104t\le 10^4
  • 输入 6-11:N103N\le 10^3Q104Q\le 10^4
  • 输入 12-23:无额外限制。

题目来源:Akshaj Arora

翻译由 DeepSeek 完成