loj#P3287. 「CEOI2014」法贡森林
「CEOI2014」法贡森林
题目描述
译自 CEOI 2014 Day1 T2「The Forest of Fangorn」,原网站因为神秘原因没法访问了,这里用的 Web Archive 链接。
小 G 一进到法贡森林就感受到不对劲,他感觉这里的树有问题。因此,小 G 想去往森林边缘的一个营地。然而因为他时刻被这种不安感围绕着,他不得不检查每一棵树。幸运的是,他们家族的视力很好,能够看清任意方向无限远的树木。
法贡森林是一个各边平行于坐标轴的矩形 ,左下角和右上角分别为 和 。森林里共有 棵树,均位于这个矩形的内部。此外,有 个营地 位于矩形的边上。所有的树只在竖直方向生长,因此可以视为一个点。因此,小 G 能看到一棵树当且仅当他与这棵树的连线上没有其他树。注意小 G 并不能爬树。
在任意一个营地,小 G 都可以看到所有的树。起始时,它位于矩形内部一个没有树的位置,并且在这里他能看到所有的树和营地。因为法贡森林历史悠久,保证不存在三棵树共线。
我们称小 G 能平安到达营地 当且仅当从起始点开始存在一条路径 使得在 上的任意点能看到所有的树。你的任务是编写一个程序算出小 G 能平安到达的所有点。
输入格式
第一行两个空格分隔的整数 和 ,表示矩形 的大小。
第二行两个空格分隔的整数 ,表示小 G 的起始位置。
第三行一个整数 ,表示营地的数目。
接下来 行每行两个空格分隔的整数 ,表示营地 的坐标。
接下来一行一个整数 ,表示树木的数目。
接下来 行每行两个空格分隔的整数 和 ,表示一棵树木的坐标。保证树木的坐标互不相同。
输出格式
第一行一个整数 ,表示小 G 能安全到达的营地数。
如果 ,下一行升序输出可到达营地的编号。
9 4
1 2
3
7 4
1 4
0 2
4
1 1
6 1
3 3
8 3
2
1 3
9 4
1 2
1
8 4
4
1 1
6 1
3 3
4 3
0
数据范围与提示
对于 的数据,有 。
子任务 | 分值 | 额外限制 |
---|---|---|
树木形成了凸多边形的一角, | ||
无特殊限制 |