#abc258e. [abc258_e]Packing Potatoes

[abc258_e]Packing Potatoes

题目描述

一条传送带上的1010010^{100}个土豆陆续地运来。土豆的重量由长度为NN的序列W=(W0,dots,WN1)W=(W_0, \\dots, W_{N-1})描述,第ii个土豆的重量是W(i1)bmodNW_{(i-1) \\bmod N},其中(i1)bmodN(i-1) \\bmod N表示(i1)(i-1)除以NN的余数。

高桥将准备一个空盒子,然后按照以下方式装土豆:

  • 将进入的土豆放入盒子中。如果盒子中的土豆总重量达到或超过XX,则封装该盒子并准备一个新的空盒子。

给定QQ个查询。在第ii个查询中 (1iQ)(1 \leq i \leq Q),给定正整数KiK_i,找到将封装在第KiK_i个盒子中的土豆数量。在问题的约束条件下,可以证明至少会有KiK_i个已封装的盒子。

约束条件

  • 1N,Q2×1051 \leq N, Q \leq 2 \times 10^5
  • 1X1091 \leq X \leq 10^9
  • 1Wi109(0iN1)1 \leq W_i \leq 10^9 \, (0 \leq i \leq N - 1)
  • 1Ki1012(1iQ)1 \leq K_i \leq 10^{12} \, (1 \leq i \leq Q)
  • 输入中的所有值均为整数。

输入

从标准输入读取输入数据,输入格式如下:

NN QQ XX W0W_0 W1W_1 ldots\\ldots WN1W_{N-1} K1K_1 vdots\\vdots KQK_Q

输出

打印QQ行。第ii(1iQ)(1 \leq i \leq Q) 应包含第ii个查询的答案。

示例输入1

3 2 5
3 4 1
1
2

示例输出1

2
3

在封装第22个盒子之前,高桥将执行以下操作:

  • 准备一个空盒子。
  • 将第11个土豆放入盒子中。现在,盒子中土豆的总重量为33
  • 将第22个土豆放入盒子中。现在,盒子中土豆的总重量为3+4=73 + 4 = 7,不小于X=5X = 5,因此封装该盒子。
  • 准备一个新的空盒子。
  • 将第33个土豆放入盒子中。现在,盒子中土豆的总重量为11
  • 将第44个土豆放入盒子中。现在,盒子中土豆的总重量为1+3=41 + 3 = 4
  • 将第55个土豆放入盒子中。现在,盒子中土豆的总重量为1+3+4=81 + 3 + 4 = 8,不小于X=5X = 5,因此封装该盒子。

11个封装的盒子中有22个土豆,第22个封装的盒子中有33个土豆。

示例输入2

10 5 20
5 8 5 9 8 7 4 4 8 2
1
1000
1000000
1000000000
1000000000000

示例输出2

4
5
5
5
5