만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

다각형 질의

시간 제한1초메모리 제한512 MB

요약
점을 하나씩 추가하는 집합에서, 볼록 껍질의 두 꼭짓점 사이를 시계 방향과 반시계 방향으로 갈 때 지나는 꼭짓점이 더 많은 방향을 구합니다.
난이도

어려움10점 중 8점

유형
기하, 트리
정답자
아직 제출이 없습니다

문제

SS를 2차원 평면 위의 점들의 집합이라고 하자. 처음에 SS는 빈 집합이다. convexHull(SS)는 SS의 볼록 껍질(convex hull)의 꼭짓점들로 이루어진 SS의 부분집합이며, 한 직선 위에 있는 세 점은 포함하지 않는다.

질의는 QQ개이며, 각 질의는 다음 두 종류 중 하나이다.

  1. add(xx, yy): 점 (xx, yy)를 SS에 추가한다. 두 점이 같은 xx좌표나 같은 yy좌표를 가지지 않는다고 보장된다.
  2. findHeavy(x1x_1, y1y_1, x2x_2, y2y_2): 점 (x1x_1, y1y_1)과 (x2x_2, y2y_2)는 convexHull(SS)에 속한 서로 다른 점이다. 이 질의는 convexHull(SS)가 점을 세 개 이상 가질 때만 호출된다고 보장된다. 로봇이 (x1x_1, y1y_1)에 있고 (x2x_2, y2y_2)로 가려 한다. 로봇은 convexHull(SS)의 변을 따라서만 이동할 수 있다. 시계 방향으로 이동할 때 지나가는 convexHull(SS)의 점 수를 cwcw, 반시계 방향으로 이동할 때 지나가는 점 수를 ccwccw라 한다. cw≥ccwcw \ge ccw이면 "CW"를, 그렇지 않으면 "CCW"를 출력한다.

입력

첫 줄에 정수 QQ(1≤Q≤1000001 \le Q \le 100000)가 주어진다. 이어서 QQ개의 줄이 주어지며, 각 줄은 3개 또는 5개의 정수로 이루어진다.

  • ii번째 질의가 add(xx, yy)이면 ii번째 줄은 0 xx yy 형태이다 (0≤x,y≤10000000 \le x, y \le 1000000).
  • ii번째 질의가 findHeavy(x1x_1, y1y_1, x2x_2, y2y_2)이면 ii번째 줄은 1 x1x_1 y1y_1 x2x_2 y2y_2 형태이다 (0≤x1,y1,x2,y2≤10000000 \le x_1, y_1, x_2, y_2 \le 1000000).

출력

findHeavy 질의마다 답을 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    14
    0 0 2
    0 4 6
    0 5 1
    1 0 2 4 6
    1 4 6 0 2
    0 1 5
    0 6 4
    1 0 2 4 6
    1 0 2 5 1
    0 3 3
    1 0 2 6 4
    0 2 0
    1 0 2 6 4
    1 6 4 0 2
    
    예상 출력
    CCW
    CW
    CCW
    CW
    CW
    CW
    CW