CCW 알고리즘을 이용한 문제이다. ccw 알고리즘을 사용한 값을 구했을 때, 양수이면 반시계, 음수이면 시계, 0이면 일직선이 된다. 이에 맞춰 출력해주었다.
ccw 알고리즘이란 것을 처음 알게 되었다. 기하학관련 알고리즘은 처음이었다. 기억해두자.
#include <iostream>
using namespace std;
pair<int, int> p1;
pair<int, int> p2;
pair<int, int> p3;
void solution() {
int a = (p2.first - p1.first) * (p3.second - p1.second) - (p3.first - p1.first) * (p2.second - p1.second);
if (a > 0) {
cout << 1;
}
else if (a < 0) {
cout << -1;
}
else {
cout << 0;
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> p1.first >> p1.second;
cin >> p2.first >> p2.second;
cin >> p3.first >> p3.second;
solution();
return 0;
}