2019级新生编程能力测试

C. 俄罗斯方块

单点时限: 1.0 sec

内存限制: 256 MB

众所周知,Cuber QQ 热爱各种游戏,特别擅长于俄罗斯方块。

你每次都只能甘拜下风。为了难为一下 Cuber QQ,你设计了一种新的俄罗斯方块类游戏,姑且称为方方方块。

关键规则几乎都与俄罗斯方块一样,唯一的不同是下落物体的形状是不规则的。 Cuber QQ 对这个新的游戏有点丈二和尚摸不着头脑,因此只能来求你帮助他了。

这里我们将问题简化,给出某个下落物体落下来之前游戏区内剩余的方块情况,以及即将落下来的物体的形状,并给定下落的位置,不能调整下落物体的方向和下落位置,请输出该物体下落稳定后第一次消除的行数,即不考虑第一次消除后,下落物体剩余部分由于失去连接导致下落而继续消除的行数,假定下落物体一开始在无穷高处。

输入格式

第一行为三个整数 $w$ 、$n$ 、$m$ ,表示方方方块的游戏区的宽度,游戏区内剩余的方块个数,下落物体的方块个数。

接下来 $n$ 行每行两个整数 $x$ ,$y$ 表示第 $x$ 行第 $y$ 列有一个方块。注意,列数从左到右递增,行数从下往上递增,数据保证 $n$ 个 $(x,y)$ 两两不同。

接下来一行一个整数,表示下落物体中某个参照方块所在的列数。

再接下来 $m-1$ 行,每行两个整数,分别表示其他方块与该参照方块的行之差和列之差,均由参照方块的行数和列数做减数。以上所有的整数绝对值均小于等于 $100$ 。

输出格式

一行一个数,表示第一次消除的行数,输入数据保证原本剩余的方块不可消除。

样例

Input
4 11 5
1 1
1 2
1 4
2 1
2 2
2 4
3 1
3 2
3 4
4 1
4 4
3
0 -1
-1 0
1 0
2 0
Output
2