#P15968. [Roi2014 Team]池塘里的乌龟
[Roi2014 Team]池塘里的乌龟
题目描述
乌龟 Tortilla 的池塘是一个 列、 行的矩形网格,其中一些格子有睡莲。睡莲集合始终是连通的:任意两片睡莲之间都能通过边相邻的睡莲互相到达。
乌龟访问朋友时,会在出发前选择四个方向(上、下、左、右)中的两个方向,之后只能沿这两个方向移动。
例如,下图中,从 A 到 B 可以选择“上”和“左”;但从 C 到 A 无法只用两个方向到达,因为任何路径都至少需要三个方向。若添加星号处的睡莲,则整个集合会变得方便。

如果从任意睡莲都能用某两个方向到达任意另一片睡莲,则称该睡莲集合对乌龟“方便”。
现在 Tortilla 决定依次加入 片新睡莲。保证初始以及每次添加后,睡莲集合均连通。请在初始时以及每次添加后,判断集合是否方便。
输入格式
第一行两个整数 ,表示池塘行数和列数。
下一行一个整数 ,表示初始睡莲数。
接下来 行,每行两个整数 ,表示一片睡莲所在的行和列。
然后一行一个整数 ,表示将添加的睡莲数。
接下来 行,每行两个整数 ,表示新加入睡莲的位置。
保证所有睡莲位置互不相同,且每次加入后集合仍连通。
输出格式
输出 行。第一行表示初始集合是否方便,之后每行表示对应添加后的结果。方便输出 YES,否则输出 NO。
样例 1
样例输入
5 10
8
1 4
2 4
2 5
2 6
1 6
3 5
3 4
4 4
4
1 5
2 7
3 7
3 6
样例输出
NO
YES
YES
NO
YES
样例 2
样例输入
3 3
5
1 1
1 2
1 3
2 3
3 3
4
2 1
3 2
3 1
2 2
样例输出
YES
NO
NO
NO
YES