画三角题解
题目描述:
1.给定t组测试数据
2.每行给一个点,每三个点构成一个三角形(不一定是三角形,可能是直线)
求给的三个点构成的三角形是否包含原点,如果是输出YES ,如果没有包含原点(边上也不算包含),或者不能构成三角形,输出NO
思路:
本题还是利用差积来解决
1.我们知道从原点引出的向量就等于该点的坐标,因此可以把给定的三个点都看成是向量。
俩俩向量求差积,如果他们三的值都为正或都为负,说明包含原点,否则不包含原点。
代码:
#include <cstdio>
int T;
int x1,y1,x2,y2,x3,y3;
long long a,b,c;
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3);
a=x1*y2-x2*y1;
b=x2*y3-x3*y2;
c=x3*y1-x1*y3;
if(a*b>0 && b*c>0)
printf("YES\n");
else
printf("NO\n");
}
return 0;
} 