#window. window

window

window

题目描述

房间里有 nn 个百叶窗,第 ii 个百叶窗初始时从顶部放下 aia_i 厘米,所有升起操作都以整数厘米为单位。

升起百叶窗有两种方式:

  1. 手动升起:可以选择任意一个百叶窗,手动升起,每升起 11 厘米需要 tt 秒。
  2. 按钮升起:按下按钮后,所有剩余的百叶窗以相同的速度并行升起,速度取决于已经完全升到顶部的百叶窗数量 rr。如果 rr 个百叶窗已经升到顶,那么所有剩余的百叶窗每升起 11 厘米需要 s+krs+k\cdot r 秒。

qq 个问题。每个问题:在百叶窗的初始状态下,将所有百叶窗放下高度都变为至多 hh 厘米所需的最小时间是多少?

输入格式

第一行包含四个整数 n,t,s,kn,t,s,k,分别表示百叶窗的数量、手动升起 11 厘米所需的时间、按钮并行升起 11 厘米的基础时间、以及并行升起的减速因子。

第二行包含 nn 个整数 aia_i,表示每个百叶窗的初始放下高度。

第三行包含一个整数 qq,表示问题的数量。

第四行包含 qq 个整数 hih_i,表示每个问题要求的最大放下高度。

输出格式

输出一行 qq 个整数,其中第 ii 个整数是使所有百叶窗的放下高度都至多为 hih_i 厘米所需的最小时间。

样例 1

输入

3 2 5 1
2 2 4
3
2 0 1

输出

4 14 9

样例 2

输入

2 3 4 0
3 1
3
3 2 0

输出

0 3 10

数据范围

对于所有数据,满足:

  • 1n,t,s1051\le n,t,s\le 10^5
  • 0k1050\le k\le 10^5
  • 0ai1050\le a_i\le 10^5
  • 1q1051\le q\le 10^5
  • 0hi1050\le h_i\le 10^5
子任务编号 分数 限制
1 20 n,q,ai,hi100n,q,a_i,h_i\le 100
2 25 k=0k=0
3 q=1q=1
4 30 无特殊限制

评测方式

本题使用文件输入输出,程序应从 window.in 读入,并输出到 window.out