#P4356. [CERC2015] Looping Labyrinth

[CERC2015] Looping Labyrinth

Description

一个n×mn×m的矩形,其中每格为路或墙,通过将图案平移来获得迷宫。迷宫是一个大小有限的坐标系,其图案在四个方向上重复。

用整数(包括负整数)表示横纵坐标。向下行数增加,向右列数增加,坐标(0,0)(0,0)处称为原点。特别地,图案的左上角在原点,而右下角在坐标(n1,m1)(n-1,m-1)

原点是出口,为了从开始逃离迷宫,我们要从不同的起点到达原点,每一步可向上,下,左或右。对于每个起点,确定是否可以逃离迷宫。

Input Format

第一行包含两个整数nnmm1n1≤nm100m≤100)。

以下每一行包含mm个字符。“#”表示墙,“.”表示路。 以下的一行包含整数qq1q2000001≤q≤200000)表示起点的数量。

以下qq行每行包含两个整数rrcc109r-10^9≤rc109c≤10^9),表示每个起点的坐标。

保证原点和所有起点为路。

Output Format

输出qq行。如果可以从当前起点逃出迷宫,则每行输出yesyes,否则输出nono

6 9 
..#####.. 
..#...#.. 
......#.. 
..#####.. 
..#...... 
..#...#.. 
5 
1 4 
5 4 
1 -5 
5 -5 
-1000000000 0
yes 
no 
no 
yes 
yes