QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 256 MB Total points: 100

#17218. Purchasing Milk

الإحصائيات

题目描述

在全国牛奶日,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

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.