QOJ.ac

QOJ

시간 제한: 1 s 메모리 제한: 4096 MB 총점: 100

#13541. A 加 B

통계

Borcsa 有两个数组,每个数组包含 $N$ 个非负整数。

第一个数组中的数为 $A[0], A[1], \dots, A[N - 1]$,第二个数组中的数为 $B[0], B[1], \dots, B[N - 1]$。两个数组中的数都是升序排列的,即:

  • $A[0] \le A[1] \le \dots \le A[N - 1]$,且
  • $B[0] \le B[1] \le \dots \le B[N - 1]$。

Borcsa 非常喜欢算术加法,因此对于 $0$ 到 $N - 1$ 之间的每个 $i$ 以及 $0$ 到 $N - 1$ 之间的每个 $j$(均包含端点),她都计算了和 $A[i] + B[j]$。

设数组 $C$ 包含 Borcsa 计算的所有 $N^2$ 个和,并按升序排序。你的任务是求出 $C$ 中的前 $N$ 个值。

实现细节

你应当实现以下函数:

int[] smallest_sums(int N, int[] A, int[] B)
  • N:每个数组中的元素个数。
  • A, B:长度为 $N$ 的数组,包含按升序排序的非负整数。
  • 该函数应当返回一个长度为 $N$ 的数组,包含通过将 $A$ 中的一个元素与 $B$ 中的一个元素相加得到的最小的 $N$ 个和。返回的数组应按升序包含这些和。
  • 对于每个测试用例,该函数恰好被调用一次。

样例

输入样例 1

2
0 2
1 4

输出样例 1

1 3

说明 1

考虑以下调用:

smallest_sums(2, [0, 2], [1, 4])

在这种情况下,$N = 2$。Borcsa 计算了 $N^2 = 4$ 个和:

  • $0 + 1 = 1$
  • $0 + 4 = 4$
  • $2 + 1 = 3$
  • $2 + 4 = 6$

数组 $C$ 包含这些按升序排序的和,即 $C = [1, 3, 4, 6]$。$C$ 中最小的 $N = 2$ 个元素是 $1$ 和 $3$。因此,该函数应该返回数组 [1, 3]

输入样例 2

3
0 2 2
3 5 6

输出样例 2

3 5 5

说明 2

考虑以下调用:

smallest_sums(3, [0, 2, 2], [3, 5, 6])

这 9 个两两相加的和(按升序排序)为 $3, 5, 5, 5, 6, 7, 7, 8, 8$。该函数应该返回最小的 3 个和,即数组 [3, 5, 5]

数据范围

  • $1 \le N \le 100\,000$
  • $0 \le A[i] \le 10^9$(对于满足 $0 \le i < N$ 的每个 $i$)
  • $0 \le B[j] \le 10^9$(对于满足 $0 \le j < N$ 的每个 $j$)
  • $A$ 和 $B$ 按升序排序。

子任务

  1. (10 分)$N = 1$
  2. (20 分)$N \le 100$
  3. (30 分)$N \le 2\,500$
  4. (40 分)无附加限制。

评测程序示例

评测程序示例按以下格式读取输入:

  • 第 1 行:$N$
  • 第 2 行:$A[0]\ A[1]\ \dots\ A[N - 1]$
  • 第 3 行:$B[0]\ B[1]\ \dots\ B[N - 1]$

对于某个非负整数 $n$,设 smallest_sums 返回的数组元素为 $c[0], c[1], \dots, c[n - 1]$。评测程序示例的输出格式如下:

  • 第 1 行:$c[0]\ c[1]\ \dots\ c[n - 1]$

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.