期末-考题5

                               考题5


描述

二维平面上,给定n

个点{ai}和m个点{bi},且保证这n+m个点中,任意两个点的x坐标和y

坐标均不相同。

对于每个bi

,判断是否存在由3个ai,aj,ak(1≤i,j,k≤n,i≠j≠k)点组成的三角形包含bi(在三角形边上也算包含;允许三点共线的三角形,此时只有bi

在三点中任意两点的线段上才算包含)。

输入

第一行为一个整数n

。接下来n行,其中第i行有两个整数,表示ai

的横纵坐标。

第一行为一个整数m

。接下来m行,其中第i行有两个整数,表示bi

的横纵坐标。

输出

输出m

行,第i行为一个整数0或1,分别表示是否存在一个三角形包含该bi

样例1输入

3
1 -6
-10 -3
1 6
3
-2 7
-4 -3
-3 2

样例1输出

0
1
1

样例1解释

如图,绿点为A,红点为B。2号、3号红点均包含于3个绿点里。

样例2

请查看下发文件内的sample2_input.txt和sample2_output.txt以及draw.py。

为了大家调试方便,我特意提供了一个draw.py的文件来绘制点集。大家需要安装python 3,然后

python3 -m pip install matplotlib

最后用

python3 draw.py

运行,将题中数据复制进去即可得到图片。(当然你也可以重定向数据)

限制

n,m≥3

 

其中30%的数据,n,m≤200

另外30%的数据,n,m≤2000

剩下40%的数据,n,m≤300000

时间:3 sec

空间:256 MB

注意,使用python的同学,OJ给你们提供了pypy来提速,源代码根本不用变,只需在第一行修改一下即可享受高速python。

使用pypy必须得在第一行加上(或者直接使用我给你们的IO模板)

python 2:

#!/usr/bin/env pypy

python 3:

#!/usr/bin/env pypy3

提示

为了帮助大家完成题目,我们提供了只包含了输入输出功能的程序模板。

你可以根据自己的实际情况,在这些程序的基础上进行作答,或不参考这些程序,这将与你的得分无关。

这些程序可以从【这里】下载。

你可能感兴趣的:(算法)