题目描述
在全国牛奶日,Farmer John 提供了独家的牛奶桶优惠活动!他有 $N$ ($1 \leq N \leq 10^5$) 个优惠,编号从 $1$ 到 $N$。对于第 $i$ 个优惠,他提供 $2^{i-1}$ 桶牛奶,价格为 $a_i$ ($1 \leq a_i \leq 10^9, a_i < a_{i+1}$) 个 moonies。每种优惠都可以购买任意非负整数次。
你正在考虑 $Q$ ($1 \leq Q \leq 10^4$) 个独立的询问。对于每个询问,你心中有一个整数 $x$ ($1 \leq x \leq 10^9$),想知道购买至少 $x$ 桶牛奶的最低成本是多少。
输入格式
第一行包含两个整数 $N$ 和 $Q$。
下一行包含 $a_1, a_2, \ldots, a_N$。
接下来的 $Q$ 行,每行包含一个整数 $x$,代表一个询问。
输出格式
对于每个询问,输出一行,表示最低成本。
注意:本题涉及的整数较大,可能需要使用 64 位整数数据类型(例如 C/C++ 中的 "long long")。
样例
输入 1
2 4
10 15
1
2
6
7
输出 1
10
15
45
55
说明 1
在上面的例子中,Farmer John 提供了 2 种优惠:1 桶牛奶 10 moonies,2 桶牛奶 15 moonies。
购买 1 桶牛奶的最低成本就是 1 桶优惠的价格,购买 2 桶牛奶的最低成本就是 2 桶优惠的价格。
要获得 6 桶牛奶,最便宜的方式是购买 3 次 2 桶优惠,总共 45 moonies。
要获得 7 桶牛奶,最便宜的方式是购买 3 次 2 桶优惠和 1 次 1 桶优惠,总共 55 moonies。
输入 2
4 10
10 25 30 70
1
2
3
4
5
6
7
8
15
101
输出 2
10
20
30
30
40
50
60
60
120
760
说明 2
在这个例子中,Farmer John 总共提供了 4 种优惠,分别对应 1、2、4 和 8 桶牛奶。对于 10 个询问中的每一个,相应的输出表示购买至少该数量牛奶的最低成本。有时,购买超过指定数量的牛奶反而更便宜。
子任务
- 测试点 3-4:$N \leq 2$
- 测试点 5-8:$N \leq 10$
- 测试点 9-16:无额外限制。
题目来源:Chongtian Ma