9457 - 坚果保龄球(bow)

小李特别喜欢玩植物大战僵尸,这回他玩的是奖励关,这一关是用高坚果在地图上翻滚消灭僵尸。地图上有一些僵尸,小李可以在地图上的最左一列放置高坚果,高坚果只会向右上和右下翻滚两者移动方式。在碰到僵尸时就能消灭僵尸(僵尸不会被多次消灭)。另外高坚果在碰到地图边缘或者消灭僵尸后就会反弹,即切换移动方式,最后高坚果会从地图的最右侧离开地图。
小李喜欢积攒多个可放置的高坚果后,然后在一瞬间快速的全部放置在地图上。在高坚果运动过程中,僵尸不会移动,即整个过程,僵尸是固定不动的。他想知道,在给定放置的顺序之后,地图上还剩下的僵尸数量。
给定一个行列的地图,其中第一列表示地图的最左一列。地图上有个僵尸,所在地图的行列,保证地图的同一格内没有多个僵尸。另外小李准备放置个高坚果,分别依次放在最左一列的第行,求最后还剩下多少僵尸。

输入

从文件bow.in中读入数据。
输入的第一行包含三个正整数n、m、k,分别表示一个nxn的矩阵,m个僵尸,k次操作。
接下来行,每行两个正整数x、y,表示在x行y列有一个僵尸。
接下来k行,每行两个整数x、d,表示将高坚果放置在第x行,初始的移动方式d,d=0表示向右上方移动,d=1表示向右下方移动。

输出

输出到文件bow.out中。
输出一行仅一个数字,即地图最终剩下的僵尸数量

样例

输入

5 6 2
3 2
3 5
4 4
1 2
3 4
3 3
2 1
5 0

输出

2

提示

【样例1解释】

初始地图如下图:

第一个高坚果放置在第2行,初始移动方向是右下,运动到(3,2)后消灭了僵尸,并且切换移动方向为右上。之后运动到(1,4)触碰到地图边缘,切换移动方向为右下。最后在(2,5)翻滚出地图。

第二个高坚果放置在第5行,初始移动方向是右上,运动到(3,3)后消灭了僵尸,并且切换移动方向为右下。接着运动到(4,4),切换移动方向为右上。然后运动到(3,5),切换移动方向为右下,不过此时已经翻滚出地图。

最后地图还剩下位于(1,2),(3,4)的两个僵尸。

【数据范围】

对于所有测试数据有:1≤n≤2000,1≤m≤5×10^5,0

来源

云南编程挑战赛

时间限制 1 秒
内存限制 512 MB
讨论 统计
上一题 下一题