P15838 [蓝桥杯第一届国际赛] 平面染色
题目描述
小 C 有一张很大的白纸(假定无限大)。闲暇之余,小 C 喜欢在纸上用直线画出各种图案,这些直线将白纸分割成为若干区域。小 C 想用黑白两种颜色填充每一个区域。若两个区域有公共边,则它们是相邻的。若相邻的两个区域填充了同一种颜色,这种方案就十分不美观。并且小 C 希望白纸的中心保留原有的白色,即原点所在区域是白色的。
现在小 C 已经画好了这 $n$ 条直线,但是分割出的区域太多了,他找不出一个美观的染色方案。现在小 C 希望机智的你可以告诉他一种染色方案。小 C 会向你询问纸上 $m$ 个点的颜色,以帮助他了解染色情况。
若染色方案不唯一,你只需给出一种就可以了。
输入格式
输入一行,包含两个正整数 $n, m$,分别表示直线的数量和询问的点数。
接下来 $n$ 行,每行包含 $4$ 个整数 $x_1, y_1, x_2, y_2$,表示一条过点 $(x_1, y_1)$ 和点 $(x_2, y_2)$ 的直线。
接下来 $m$ 行,每行包含 $2$ 个整数 $q_x, q_y$,表示询问点 $(q_x, q_y)$ 的颜色。
输出格式
若不存在一种美观的染色方案,则输出 $-1$。
若存在一种美观的染色方案,则输出 $m$ 行,每行包含一个数字($0$ 或 $1$),表示在你给出的这种染色方案中,询问点的颜色($0$ 表示黑,$1$ 表示白)。
说明/提示
### 评测用例规模与约定
对于 $30\%$ 的评测用例,$1 \le n, m \le 1000$,保证每条直线必与坐标轴平行;
对于 $50\%$ 的评测用例,$1 \le n, m \le 10^5$,保证每条直线必与坐标轴平行;
对于另外 $20\%$ 的评测用例,$1 \le n, m \le 1000$;
对于所有评测用例,$1 \le n, m \le 10^5$,$0 \le |x_i|, |y_i|, |q_x|, |q_y| \le 10^8$;
对于所有评测用例,保证点 $(x_1, y_1)$ 与点 $(x_2, y_2)$ 不相同,保证给出的直线两两不同,保证 $(q_x, q_y)$ 不在任何一条给定直线上,保证原点不在任何一条给定直线上。