题解 | 【模板】点线位置关系

【模板】点线位置关系

https://www.nowcoder.com/practice/a2e98f8674a04dde88fa19a981a5b70b

利用向量叉积

#include <iostream>
#include<algorithm>
using namespace std;

typedef long long ll;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int q;
    cin>>q;
    while(q--){
        ll x1,x2,x3,y1,y2,y3;
        cin>>x1>>y1>>x2>>y2>>x3>>y3;
        ll cross=(x2-x1)*(y3-y1)-(y2-y1)*(x3-x1);
        if(cross>0)cout<<1<<endl;
        else if(cross<0)cout<<2<<endl;
        else{
            bool in_x=(x3>=min(x1,x2))&&(x3<=max(x1,x2));
            bool in_y=(y3>=min(y1,y2))&&(y3<=max(y1,y2));
            if(in_x&&in_y)cout<<3<<endl;
            else cout<<4<<endl;
        }
    }
    return 0;
}

全部评论

相关推荐

代码飞升_不回私信人...:啊喂笨蛋算法为什么写查找,线程池怎么放计网上去了,写动态规划真的不会被狠狠地制裁吗oi
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务