自动收小麦机
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在游戏MC(我的世界)中,如果小麦碰到水流就会掉落,但是mc中的水不能无限流动,在同一高度一桶水往一个方向流最多可以流动8格(算上本身一格)。

但是如果流动过程中遇到了阶梯下降了高度,则从下降的那一格开始重新计算距离,所以根据这个原理可以设计一种自动收小麦机,只需要从最高处倒一桶水就可以把所有小麦变成掉落物。

这次小小航也根据这个原理建造了一个自动收小麦机,但是小小航并没有精确的计算台阶的位置,当小小航建造完后发现机器不能一次收集所有小麦,现在已知小小航的收小麦机总长为 n 格 ,水流可以流 k ,每一格上的小麦数量为ai

共有q次询问(每次询问之间互不影响),每次询问一个整数x,在第x格放一桶水共可以收获多少小麦。(水只会从高的一端流向低的一端



输入描述:

第一行三个整数n,q,k

第二行 n个数表示每格上小麦的数量

第三行n个数表示每格的高度,保证非递减

接下来q行 每行一个数x,表示在第x格放一桶水

输出描述:

q行,每行一个整数,表示能收获的小麦数量。
示例1

输入

复制
4 1 2
1 1 4 5
2 2 2 3
4

输出

复制
10

说明

在第4格放出水流后,水流会流向第3格,由于第3格高度比第4格低,所以水流继续向左流向第2格,因为平地水流只能流2格,所以到达第2格后水流停止,收获的小麦数量为1 + 4 + 5 = 10
示例2

输入

复制
5 2 2
1 1 4 5 1
2 2 3 3 4
4
3

输出

复制
9
6