QOJ.ac

QOJ

実行時間制限: 10 s メモリ制限: 1024 MB 満点: 30

#12076. 神秘的路标

統計

Signfield 镇坐落于一条从西向东延伸的笔直且无限长的公路上。在这条公路上,有一系列 $S$ 个神秘的路标,路标的两面都有数字。第 $i$ 个路标(按从西向东的顺序编号)位于距离 Signfield 镇 $D_i$ 公里的地方,其面向西的一面写着数字 $A_i$,面向东的一面写着数字 $B_i$。

Signfield 镇没有人知道这些路标代表什么。你认为,路标西侧的数字是给向东行驶的司机看的,代表到某个特定目的地的距离。同样,你认为路标东侧的数字是给向西行驶的司机看的,代表到某个特定目的地的距离。不过,你怀疑并非所有的路标都符合这一理论。

为了验证你的理论,你有兴趣寻找符合以下规则的有效路标集合:

  • 该集合是所有路标序列的一个连续子序列。(整个序列也算作一个连续子序列。)
  • 存在距离 Signfield 镇 $M$ 和 $N$ 公里的位置($M$ 和 $N$ 可以是任意数字,不一定为正,也不一定不同),使得对于该集合中的每一个路标,以下至少有一个条件成立:
    • $D_i + A_i = M$
    • $D_i - B_i = N$

请问符合上述条件的有效路标集合中,包含的路标数量最多是多少?有多少个不同且长度为该最大值的有效路标集合?

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含一个整数 $S$,表示路标的数量。随后有 $S$ 行,第 $i$ 行代表第 $i$ 个路标(按从西向东的顺序),包含三个整数 $D_i$、$A_i$ 和 $B_i$:路标距离 Signfield 镇的距离(单位:公里)、路标西侧的数字以及路标东侧的数字。

输出格式

对于每个测试用例,输出一行 Case #x: y z,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是有效路标集合中路标的最大数量,$z$ 是该长度下有效路标集合的数量。

数据范围

$1 \le T \le 60$ $1 \le D_i \le 10^6$,对于所有 $i$ $D_i < D_j$,对于所有 $i < j$ $1 \le A_i \le 10^6$,对于所有 $i$ $1 \le B_i \le 10^6$,对于所有 $i$

样例

样例输入 1

3
1
1 1 1
5
2 7 12
6 3 11
8 10 1
11 11 12
13 9 14
5
1 3 3
2 2 2
3 1 1
4 2 2
5 3 3

样例输出 1

Case #1: 1 1
Case #2: 3 2
Case #3: 5 1

说明

在样例 1 中,只有一个路标。如果我们选择该路标作为集合,有许多可能的 $M$ 和 $N$ 值满足条件,例如: $M = 2$ 且 $N = 0$ $M = 1$ 且 $N = 0$(记住每个路标只需满足其中一个值即可;此外,$M$ 和 $N$ 可能与一个或多个路标位于同一位置,或者与 Signfield 镇位于同一位置) $M = 2$ 且 $N = -12345$($N$ 可能在 Signfield 镇的西侧) $M = 0$ 且 $N = 0$($M$ 和 $N$ 不一定不同) * $M = 2$ 且 $N = 3$($N$ 可能在 $M$ 的东侧)

因此,仅包含该路标的集合是有效的。这是该长度下唯一的集合,所以答案是 1 1。

在样例 2 中,注意第 1、2、4 和 5 个路标符合 $M = 9$ 和 $N = -1$,但它们不构成连续子序列。(第三个路标背面的 1 不能当作正面使用。)事实证明,不存在包含四个路标的有效集合。存在两个不同的包含三个路标的有效集合。注意,尽管有两个不同的 $M/N$ 对使得第二个包含三个路标的集合有效,但该集合只计算一次: 第 1、2 和 3 个路标,其中 $M = 9$ 且 $N = 7$ 第 3、4 和 5 个路标,其中 $M = 18$ 且 $N = -1$,或者 $M = 22$ 且 $N = 7$

在样例 3 中,整个序列是一个有效集合,其中 $M = 4$ 且 $N = 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.