반응형

https://www.acmicpc.net/problem/11758

 

11758번: CCW

첫째 줄에 P1의 (x1, y1), 둘째 줄에 P2의 (x2, y2), 셋째 줄에 P3의 (x3, y3)가 주어진다. (-10,000 ≤ x1, y1, x2, y2, x3, y3 ≤ 10,000) 모든 좌표는 정수이다. P1, P2, P3의 좌표는 서로 다르다.

www.acmicpc.net

 

ccw의 결과가 음수이면 시계 방향, 양수이면 반시계 방향을 나타냅니다.

 

#include <cstdio>

int p[3][2];

int ccw(int x1, int y1, int x2, int y2, int x3, int y3) {
	return (x1 * y2 + x2 * y3 + x3 * y1) - (y1 * x2 + y2 * x3 + y3 * x1);
}

int main() {
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 2; j++) {
			scanf("%d", &p[i][j]);
		}
	}
	int res = ccw(p[0][0], p[0][1], p[1][0], p[1][1], p[2][0], p[2][1]);
	if (res > 0) printf("1");
	else if (res < 0) printf("-1");
	else printf("0");
}
반응형

'Algorithm' 카테고리의 다른 글

백준 10254 : 고속도로  (0) 2021.11.18
백준 1708 : 볼록 껍질  (0) 2021.11.18
백준 20366 : 같이 눈사람 만들래?  (0) 2021.11.18
백준 12865 : 평범한 배낭  (0) 2021.11.18
백준 9251 : LCS  (0) 2021.11.18

+ Recent posts