题目描述
题意分析
给定一个直线θ0+θ1X+θ2Y将平面上的两种点A、B分割。
输入: 点的个数n(0<n≤10^8),查询的个数m(0<m≤20),然后输入n个点的坐标和m个要查询的直线的三个参数。
输出: YES/NO。直线是否能完美分割A、B。
解体思路
1.将点的坐标带入直线坐标,根据正负即可判断在哪一侧。
2.但是题目没有给出所有的A或B一定在哪一侧,可能A在上,B在下,也可能A在下,B在上,所以要根据第一个点判断一下。
优秀范例
示例一(c++)
#include<iostream>
using namespace std;
int x[1010],y[1010];
char s[1010];
int main()
{
int n,m,a,b,c;;
cin>>n>>m;
for(int i=0;i<n;i++)
cin>>x[i]>>y[i]>>s[i];
for(int i=0;i<m;i++)
{
cin>>a>>b>>c;//θ0=a,θ1=b,θy =c
//先标定A、B在直线哪侧
int A,B