
기하학 문제이다.
CCW를 활용하여 방향을 확인해 주는 것이다.
CCW는 외적을 이용해서 평면 위의 3점의 방향 관계를 구하는 공식이다.
#include <iostream>
using namespace std;
struct point
{
int x, y;
} p1, p2, p3;
int ccw(const point &a, const point &b, const point &c)
{
int ret = (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x);
if (ret < 0)
{
return -1;
}
else if (ret > 0)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
ios::sync_with_stdio(0), cin.tie(0);
cin >> p1.x >> p1.y >> p2.x >> p2.y >> p3.x >> p3.y;
cout << ccw(p1, p2, p3);
return 0;
}

방향에 따라 외적 했을 때 벡터의 Z 값 부호가 달라진다는 점을 활용하는 것이다.