QOJ.ac

QOJ

時間限制: 5 s 記憶體限制: 256 MB 總分: 100

#3497. Johnny 的生日

统计

Johnny 即将举办生日派对。这次他不想用糖果,而是想用巧克力招待同学们。他收藏巧克力棒已经很久了,尽管要克制住自己不把它们全部吃掉非常困难!他还是忍不住从每一块巧克力棒上咬了一口——根据特定巧克力棒的美味程度、他的意志力、月相以及其他因素,他吃掉了一块或多块巧克力……最终,他拥有了许多不同形状的巧克力棒。但他的班里也有许多孩子,他需要公平地分享这些巧克力。

他决定为了公平分享巧克力,将执行一种称为“双切”(bisplitting)的操作:Johnny 取出最大的巧克力棒(按巧克力块的数量计算),将其横向和纵向各切成两半。Johnny 不想把巧克力块切成两半,所以有时他不得不进行不均匀的切割,但他总是会尽可能地接近一半——如果一块巧克力棒的尺寸为 $w \times h$,那么在双切之后,他将得到尺寸分别为 $\lfloor \frac{w}{2} \rfloor \times \lfloor \frac{h}{2} \rfloor$、$\lfloor \frac{w}{2} \rfloor \times \lceil \frac{h}{2} \rceil$、$\lceil \frac{w}{2} \rceil \times \lfloor \frac{h}{2} \rfloor$ 和 $\lceil \frac{w}{2} \rceil \times \lceil \frac{h}{2} \rceil$ 的巧克力棒。

通过这种方式得到的某些巧克力棒可能有一个或两个维度长度为 0,也就是说该巧克力棒是空的。如果有不止一块巧克力棒拥有最大数量的巧克力块,Johnny 将从中挑选长边长度最大的一块。

Johnny 认为,如果最终得到的巧克力棒不会太大,对他来说是最好的,这样他就能为自己保留更多的巧克力。因此,他想知道(你需要帮助他)在执行了 $k_i$ 次双切操作后,最大的巧克力棒中会有多少块巧克力,对于 $i = 1, 2, \dots, q$ ——根据这些信息,他将决定应该继续切分巧克力棒多久。

输入格式

第一行包含两个整数 $n$ 和 $q$ ($1 \le n \le 50\,000, 1 \le q \le 100$),由单个空格分隔。它们分别表示 Johnny 拥有的巧克力棒数量和 Johnny 将进行的查询次数。

接下来的 $n$ 行,每行包含两个整数,由单个空格分隔。第 $i$ 行包含 $w_i$ 和 $h_i$ ($1 \le w_i, h_i \le 10^9$),表示一块尺寸为 $w_i \times h_i$ 块巧克力块的巧克力棒。

接下来的 $q$ 行,每行包含一个非负整数。第 $i$ 行包含 $k_i$ ($0 \le k_i \le 10^{18}$)。这是关于从初始巧克力棒集合开始,执行 $k_i$ 次双切操作后,最大的巧克力棒所包含的巧克力块数量的查询。

输出格式

输出应包含恰好 $q$ 行。每行应包含一个整数,即按输入顺序对应的查询答案。

样例

输入 1

2 4
5 10
7 7
2
3
10
1

输出 1

16
15
6
49

说明

在执行前 $i = 0, 1, 2, 3$ 次双切后,按从大到小排序的巧克力棒集合(尺寸为 $a \times b$ 和 $b \times a$ 的巧克力棒被视为相同,记为 $\min(a, b) \times \max(a, b)$):

  • 初始集合:一块 $5 \times 10$ 和一块 $7 \times 7$;
  • 第一次双切后:一块 $7 \times 7$,两块 $3 \times 5$,以及两块 $2 \times 5$;
  • 第二次双切后:一块 $4 \times 4$,两块 $3 \times 5$,两块 $3 \times 4$,两块 $2 \times 5$,以及一块 $3 \times 3$;
  • 第三次双切后:两块 $3 \times 5$,两块 $3 \times 4$,两块 $2 \times 5$,一块 $3 \times 3$,以及四块 $2 \times 2$。

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.