描述
欢迎来到德莱联盟。。。。
德莱文。。。
德莱文在逃跑,卡兹克在追。。。。
我们知道德莱文的起点和终点坐标,我们也知道卡兹克的起点和中点坐标,问:卡兹克有可能和德莱文相遇吗?,并且保证他们走的都是直线。
-
输入
-
几组数据,一个整数T表示T组数据
每组数据 8个实数,分别表示德莱文的起点和终点坐标,以及卡兹克的起点和终点坐标
输出
- 如果可能 输出 Interseetion,否则输出 Not Interseetion 样例输入
-
2 -19.74 7.14 22.23 -27.45 -38.79 -5.08 47.51 34.01 -8.61 9.91 -32.47 6.47 -3.81 -16.1 7.82 -6.37
样例输出
-
Interseetion Not Interseetion
即根据叉乘性质可AC
代码:
#include<iostream>
#include<stdio.h>
using namespace std;
struct node {
double x,y;
}st1,ed1,st2,ed2;
double area(node ss1,node ee1,node ss2)
{
return (ss1.x-ee1.x)*(ss1.y-ss2.y)-(ss1.x-ss2.x)*(ss1.y-ee1.y);
}
int main()
{
int t,i,j;
cin>>t;
while(t--)
{
cin>>st1.x>>st1.y>>ed1.x>>ed1.y>>st2.x>>st2.y>>ed2.x>>ed2.y;
double s1=area(st1,ed1,st2);
double s2=area(st1,ed1,ed2);
double s3=area(st2,ed2,st1);
double s4=area(st2,ed2,ed1);
if(s1*s2<=0&&s3*s4<=0)
cout<<"Interseetion"<<endl;
else
cout<<"Not Interseetion"<<endl;
}
return 0;
}