시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB187753.846%

문제

뤼 신은 모든 것을 간파하여 보기 위해 눈에 안대를 감았다.

하지만, 아직 정확하게 앞을 볼 수 없어서 항상 좌표 평면의 $(0,0)$의 위치에서 주변을 바라보며 자신을 수련하고 있다. 뤼 신은 수련 중에 두 가지 행동을 할 수 있다.

  1. 물체를 $(y, x)$ 위치에 추가하는 일
  2. 안대를 쓰고 본인의 시야에 있는 물체의 개수를 파악하는 일. 단, 시야의 가장자리에 있는 물체도 포함한다.

뤼 신은 2번 행동을 할 때 자신이 파악한 물체의 개수가 정확한지 알 수 없다. 뤼 신이 파악한 물체의 개수가 옳은지 알려주는 프로그램을 작성해서 수련을 도와주자.

입력

첫 번째 줄에 초기에 주어지는 물체의 개수를 나타내는 정수 $N$과 뤼 신이 행동한 횟수를 나타내는 정수 $Q$가 주어진다.

다음 $N$개의 줄에는 물체의 위치를 나타내는 정수 쌍 $y~x$가 주어진다. 이후 $Q$개의 줄에는 뤼 신의 행동이 다음 중 하나의 형태로 주어진다.

  • 1 y x : $(y, x)$ 위치에 물체를 추가한다.
  • 2 L a b r c : 뤼 신이 $a^\circ$ 방향에서부터 반시계 방향으로 $b^\circ$ 만큼 보고 있으며 가시 거리가 $r$일 때, 파악한 물체의 개수가 $c$ 이다.
  • 2 R a b r c : 뤼 신이 $a^\circ$ 방향에서부터 시계 방향으로 $b^\circ$ 만큼 보고 있으며 가시 거리가 $r$일 때, 파악한 물체의 개수가 $c$ 이다.
    • $a^\circ$ 방향이란, 원점에서부터 $x$축의 양의 방향으로 뻗은 반직선을 기준으로 반시계 방향으로 $a^\circ$ 꺾은 방향을 말한다.

$N, Q, y, x, a, b, r, c$는 모두 정수이며, 값의 범위는 다음과 같다.

  • $1 \leq N, Q \leq 100,000$
  • $-1,000 \leq y, x \leq 1,000 \ (x \neq 0 \lor y \neq 0)$
  • $0 \leq a, b \leq 360$
  • $1 \leq r \leq 1,000$
  • $0 \leq c \leq 200,000$

출력

뤼 신의 2번 행동에 대해 각각 한 줄에 하나씩 정답을 다음 중 하나의 형태로 출력한다.

  • YES - 뤼 신이 파악한 물체의 개수가 시야에 존재하는 물체의 개수와 같다면 YES를 출력한다.
  • NO X - 그렇지 않다면, NO와 함께 시야에 존재하는 물체의 개수 X를 출력한다.

예제 입력 1

4 6
1 1
1 -1
-1 -1
-1 1
2 L 30 180 30 2
1 5 2
1 -6 0
2 L 30 180 30 2
2 R 330 300 8 6
2 R 330 300 8 7

예제 출력 1

YES
NO 3
YES
NO 6

첫 번째 쿼리(2 L 30 180 30 2)는 다음과 같은 형태를 나타내며, 시야에 속하는 점이 2개로 뤼 신이 파악한 점의 개수와 같으므로 답은 YES이다.

30°30°30°180°180°180°(-1, 1)(-1, 1)(-1, 1)(1, 1)(1, 1)(1, 1)(-1, -1)(-1, -1)(-1, -1)(1, -1)(1, -1)(1, -1)

예제 입력 2

1 1
0 1
2 L 0 0 1 0

예제 출력 2

NO 1

시야의 가장자리에 존재하는 물체도 포함하여 쿼리의 답은 "NO 1"이다.

출처

University > 경북대학교 > 2021 Goricon K번