2720 - 建操场

题目描述

A 同学所在的学校准备建一个新的大操场,让大家上体育课。

学校的地图是正方形的,用 . 表示空地,用 # 表示建筑。

请在地图中找出一个最大的不包含任何建筑的正方形子矩阵,用于建操场。请编程计算出,这个用于建操场的正方形子矩阵,最大的边长是多少?

比如,假设下面是学校的地图。

..........
...##.....
..........
..........
..........
..........
.#........
..........
..........
..........

在地图中,找出可以建操场的方形子矩阵边长最大为 8,以下是一个方形操场的建造方案,其中的 * 表示操场的边界。

..........
...##.....
..********
..*......*
..*......*
..*......*
.#*......*
..*......*
..*......*
..********
输入

1 行读入 2 个整数 N,C,分别代表学校地图的边长和地图中建筑的数量。

接下来读入 C 行,每行 2 个整数 X_i,Y_i,代表在地图的第 X_i 行,第 Y_i 列处有一幢建筑。

输出

输出学校可以建造的正方形操场的最大的边长。

样例

输入

10 3
2 5
2 4
7 2

输出

8

输入

10 12
3 2
1 4
2 2
3 1
1 8
3 4
5 2
1 2
4 2
3 3
5 1
4 5

输出

6

输入

3 5
1 1
1 3
2 2
3 1
3 3

输出

1
说明

样例 1 解释

请参考题目描述。

数据范围

对于 40\% 的数据, 1 \le N \le 5001 \le C \le 500

对于 100\% 的数据,1 \le N \le 10001 \le C \le 100001 \le X_i,Y_i \le N

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 1 枚
难度 基础


上一题 下一题