利用向量叉积

#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;
}