QOJ.ac

QOJ

时间限制: 2 s 内存限制: 512 MB 总分: 100

#1342. $N \times M$ 网格计算

统计

你是否体验过 $1010 \times 1010$ 的网格计算?这是日本常见的一种数学练习。在本题中,我们考虑该练习的推广形式:$N \times M$ 网格计算。

在此练习中,你将得到一个 $N \times M$ 的网格(即一个有 $N$ 行 $M$ 列的网格),并在网格的顶部和左侧分别额外增加一行和一列。额外行和列中的每个单元格都包含一个正整数。我们将列和行上的整数序列分别记为 $a$ 和 $b$,其中列中从上往下第 $i$ 个整数为 $a_i$,行中从左往右第 $j$ 个整数为 $b_j$。

最初,网格中的每个单元格(额外行和列除外)都是空白的。令 $(i, j)$ 为从上往下第 $i$ 行、从左往右第 $j$ 列的单元格。练习要求你填满所有单元格,使得单元格 $(i, j)$ 中的值为 $a_i \times b_j$。你必须从左上角的单元格开始。你需要重复计算当前单元格 $(i, j)$ 的乘积 $a_i \times b_j$,然后从左到右移动,直到到达最右侧的单元格,接着移动到下一行最左侧的单元格。

练习结束时,你会在单元格中写下非常、非常多的数字。给你布置这项练习的老师似乎很想检查网格上的所有单元格,以确认你是否完成了练习。因此,老师认为如果你能回答出随机选择的 $x$ 所对应的第 $d$ 位数字(不是整数,请参见下文示例),就算你完成了练习。让我们看一个例子。

对于这个例子,你依次计算单元格的值,结果为 $8, 56, 24, 1, 7, 3$。因此,你会写下的数字序列为 $8, 5, 6, 2, 4, 1, 7, 3$。所以,针对第 $4$ 位数字的询问,答案是 $2$。

你注意到,即使没有完成给定的练习,你也可以回答此类问题。给定列 $a$、行 $b$ 以及 $Q$ 个整数 $d_1, d_2, \dots, d_Q$,你的任务是对于每个 $k$,回答如果你在给定网格上完成了此练习,你会写下的第 $d_k$ 位数字。注意,你的老师并不那么友善(不幸的是),所以可能会询问超过你实际会写下的数字位数。对于此类问题,你应该回答 'x' 而不是数字。

输入格式

第一行包含两个整数 $N$ ($1 \le N \le 10^5$) 和 $M$ ($1 \le M \le 10^5$),分别是网格的行数和列数。

第二行表示一个包含 $N$ 个整数的序列 $a$,其中第 $i$ 个整数是左侧额外列中从上往下第 $i$ 个位置的整数。满足 $1 \le a_i \le 10^9$ ($1 \le i \le N$)。

第三行表示一个包含 $M$ 个整数的序列 $b$,其中第 $j$ 个整数是顶部额外行中从左往右第 $j$ 个位置的整数。满足 $1 \le b_j \le 10^9$ ($1 \le j \le M$)。

第四行包含一个整数 $Q$ ($1 \le Q \le 3 \cdot 10^5$),即老师会提出的问题数量。

第五行包含一个包含 $Q$ 个整数的序列 $d$,其中第 $k$ 个整数是老师提出的第 $k$ 个问题,意味着你需要回答在此练习中你会写下的第 $d_k$ 位数字。满足 $1 \le d_k \le 10^{15}$ ($1 \le k \le Q$)。

输出格式

输出一个包含 $Q$ 个字符的字符串,其中第 $k$ 个字符是第 $k$ 个问题的答案,输出在一行中。如果 $d_k$ 不超过你会写下的数字总位数,则答案为第 $d_k$ 位数字,否则为 'x'。

样例

样例输入 1

2 3
8 1
1 7 3
5
1 2 8 9 1000000000000000

样例输出 1

853xx

样例输入 2

3 4
271 828 18
2845 90 45235 3
7
30 71 8 61 28 90 42

样例输出 2

7x406x0

Figure 1. Example of the grid calculation process

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.