QOJ.ac

QOJ

Time Limit: 0.5 s Memory Limit: 64 MB Total points: 100

#13814. The Troublesome Frog

Statistics

在韩国,小青蛙(cheonggaeguri)的顽皮是家喻户晓的。这种名声绝非虚传,因为它们总是在夜间跳过稻田,踩扁水稻。清晨,在记录下哪些水稻被踩扁后,你想找出造成最大破坏的青蛙的路径。青蛙总是沿着一条直线跳过稻田,且每次跳跃的步长都相同:

你的稻田中的水稻排列在网格的交叉点上,如图 1 所示。这些调皮的青蛙会完全穿过你的稻田,从稻田一侧的外部开始,到另一侧的外部结束,如图 2 所示:

图 1 与 图 2

许多青蛙可以跳过稻田,从一棵水稻跳到另一棵水稻。每次跳跃都会落在一棵水稻上并将其踩扁,如图 3 所示。请注意,在夜间,同一棵水稻可能会被多只青蛙踩踏。当然,你无法看到显示青蛙路径的线条,也无法看到它们在稻田外部的任何跳跃——对于图 3 的情况,你所能看到的景象如图 4 所示:

图 3 与 图 4

根据图 4,你可以重建青蛙在稻田里可能经过的所有路径。我们只对在穿过稻田的过程中至少踩扁了 3 棵水稻的青蛙感兴趣。这样的路径被称为一条青蛙路径。在这种情况下,这意味着图 3 中显示的三条路径都是青蛙路径(当然也存在其他可能的青蛙路径)。

沿着第 1 列向下垂直的路径可能是一条步长为 4 的青蛙路径,但由于只有 2 棵水稻被踩扁,因此我们对此不感兴趣;而包含第 2 行第 3 列、第 3 行第 4 列和第 6 行第 7 列水稻的对角线路径虽然有 3 棵被踩扁的水稻,但没有一个固定的步长能以这种方式拉开跳跃间隔并同时落在至少 3 棵水稻上,因此它不是一条青蛙路径。

还请注意,在青蛙路径所在的直线上,可能会有其他被踩扁的水稻,但该青蛙路径并不需要落在这些水稻上(例如图 4 中横跨第 2 行的水平路径上的 $(2, 6)$ 处的水稻);事实上,某些被踩扁的水稻可能根本无法用任何青蛙路径来解释。

你的任务是编写一个程序,确定在所有可能的单条青蛙路径中,青蛙最多能落下的次数(即踩扁水稻的最大数量)。在图 4 中,答案是 7,由横跨第 6 行的青蛙路径得到。

输入格式

你的程序需要从标准输入读取数据。

第一行包含两个整数 $R$ 和 $C$,分别表示稻田的行数和列数,$1 \le R, C \le 5000$。

第二行包含一个整数 $N$,表示被踩扁的水稻数量,$3 \le N \le 5000$。

接下来的 $N$ 行,每行包含两个整数,分别表示一棵被踩扁的水稻的行号($1 \le \text{行号} \le R$)和列号($1 \le \text{列号} \le C$),两个整数之间用一个空格隔开。每棵被踩扁的水稻只会被列出一次。

输出格式

你的程序需要向标准输出写入数据。

输出包含一行,若存在至少一条青蛙路径,则输出在造成最大破坏的青蛙路径上被踩扁的水稻数量;否则输出 0。

样例

输入样例 1

6 7
14
2 1
6 6
4 2
2 5
2 6
2 7
3 4
6 1
6 2
2 3
6 3
6 4
6 5
6 7

输出样例 1

7

输入样例 2

6 7
18
1 1
6 2
3 5
1 5
4 7
1 2
1 4
1 6
1 7
2 1
2 3
2 6
4 2
4 4
4 5
5 4
5 5
6 6

输出样例 2

4

说明

图 5 与 图 6

在样例 2 中(对应图 5),一只青蛙最多踩扁的水稻数量为 4(如图 6 所示)。

评分

如果你的程序在时间限制内对测试用例输出正确答案,你将获得该测试用例的满分,否则获得 0 分。

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.