C++题目内容
给你一个N*M的神奇的棋盘,上面有相同大小的正方形格子,每个格子中只包含一个字母。他的神奇之处在于,当你滴一滴水在某个格子上,水会迅速向四面八方均匀传播。当某一方向碰到了另一个字母,那么传播就会停止(所有方向都会停止),因此传播的结果都会是正方形。现在我们想知道,从某个点传出去的水滴能形成多大的正方形。所有大正方形的边都是平行于坐标轴的。
输入格式
输入第一行包含三个整数 N,M,Q,分别表示正方形格子的行数和列数,以及询问的个数。接下来是一个 N*M 的矩阵,其中每个元素包含一个小写字母表示相应各自内的字母。接下来 Q 行每行用两个数 X 和 Y 描述一个询问,表示询问第 X 行第 Y 列的水滴能创造的大正方形的边长,每个询问独立。注意行的标号从 0 到 N-1,列的标号从 0 到 M-1。
输出格式
输出文件包括 Q 行,每行包含一个整数,即相应问题的答案。
样例 1 输入
5 5 3
abbaa
abbaa
aaaaa
aaaaa
aaaaa
1 2
1 4
3 2
样例 1 输出
1
1
3
提示
时间限制1000ms 内存限制125MB
对于 30% 的数据,有 1<=N,M<=50,1<=Q<=500;
对于 100% 的数据,有 1<=N,M<=1000,1<=Q<=10000。
求解