loj#P3287. 「CEOI2014」法贡森林

「CEOI2014」法贡森林

题目描述

译自 CEOI 2014 Day1 T2「The Forest of Fangorn」,原网站因为神秘原因没法访问了,这里用的 Web Archive 链接。

小 G 一进到法贡森林就感受到不对劲,他感觉这里的树有问题。因此,小 G 想去往森林边缘的一个营地。然而因为他时刻被这种不安感围绕着,他不得不检查每一棵树。幸运的是,他们家族的视力很好,能够看清任意方向无限远的树木。

法贡森林是一个各边平行于坐标轴的矩形 FF,左下角和右上角分别为 (0, 0)(0,~0)(w, h)(w,~h)。森林里共有 NN 棵树,均位于这个矩形的内部。此外,有 CC 个营地 1C1\ldots C 位于矩形的边上。所有的树只在竖直方向生长,因此可以视为一个点。因此,小 G 能看到一棵树当且仅当他与这棵树的连线上没有其他树。注意小 G 并不能爬树。

在任意一个营地,小 G 都可以看到所有的树。起始时,它位于矩形内部一个没有树的位置,并且在这里他能看到所有的树和营地。因为法贡森林历史悠久,保证不存在三棵树共线。

我们称小 G 能平安到达营地 cc 当且仅当从起始点开始存在一条路径 γ\gamma 使得在 γ\gamma 上的任意点能看到所有的树。你的任务是编写一个程序算出小 G 能平安到达的所有点。

输入格式

第一行两个空格分隔的整数 wwhh,表示矩形 FF 的大小。

第二行两个空格分隔的整数 xG, yGx_G,~y_G,表示小 G 的起始位置。

第三行一个整数 CC,表示营地的数目。

接下来 CC 行每行两个空格分隔的整数 xi, yix_i,~y_i,表示营地 ii 的坐标。

接下来一行一个整数 NN,表示树木的数目。

接下来 NN 行每行两个空格分隔的整数 xxyy,表示一棵树木的坐标。保证树木的坐标互不相同。

输出格式

第一行一个整数 mm,表示小 G 能安全到达的营地数。

如果 m0m\neq 0,下一行升序输出可到达营地的编号。

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

数据范围与提示

对于 100%100\% 的数据,有 3N2000, 1C10000, 0<w, h1093\le N\le 2000,~1\le C\le 10000,~0< w,~h\le 10^9

子任务 分值 额外限制
11 3030 N70, C5N\le 70,~C\le 5
22 2020 树木形成了凸多边形的一角,N200, C5N\le 200,~C\le 5
33 3030 C5C\le 5
44 2020 无特殊限制