커널
시간 제한1초메모리 제한256 MB
탐욕적인 거리 감소 이동으로 모든 점이 모이는 비컨 자리가 직교 다각형 안에 있는지 판정합니다.
- 난이도
어려움10점 중 9점
- 유형
- 기하
- 정답자
- 아직 제출이 없습니다
문제
농부 Will은 농장에 쓸 로봇 관리 시스템을 사려고 한다. 이 시스템은 농장 안에서 자율 로봇 여러 대를 움직여 필요한 정보를 모은다. 로봇을 제어하려고 시스템은 농장의 고정된 위치에 비컨이라고 부르는 서버를 둔다. 하루 일이 끝나면 로봇은 모두 비컨으로 돌아와 다음 날을 위한 상태 점검을 받아야 한다. 그래서 비컨은 로봇에게 특별한 신호를 계속 보낸다. 로봇은 이 신호로 비컨의 위치를 곧바로 알아내고, 비컨을 향해 쉬지 않고 움직여 비컨에 닿으려 한다.
더 정확히 말하면, 농장은 단순 직각다각형 로 나타낸다. 경계를 따라가면 가로 변과 세로 변이 번갈아 나오고, 꼭짓점은 모두 서로 다르며, 두 변은 공통 끝점이 아닌 곳에서는 만나지 않는다. 로봇도 비컨도 의 점, 즉 의 경계 위나 내부의 점으로 나타낸다. 안의 로봇 는 비컨 까지의 유클리드 거리를 줄이려고 다음과 같이 탐욕적으로 움직인다. 는 에서 로 향하는 반직선을 따라 에 닿거나 의 경계에 부딪힐 때까지 나아간다. 경계에 부딪히면 경계를 따라 미끄러지면서 까지의 거리를 더 줄일 수도 있고, 어느 방향으로도 거리를 줄이지 못할 수도 있다. 안의 점 가 까지의 유클리드 거리를 계속 엄격히 줄이면서 결국 에 닿으면, 는 에서 에 끌린다고 하고, 같은 뜻으로 가 를 끌어당긴다고 한다.
아래 그림 1을 보자. 왼쪽 그림에서 점 는 굵은 선분으로 그린 경로를 따라 움직여 마침내 비컨 에 닿는다. 오른쪽 그림에서 점은 까지는 갈 수 있지만, 에서는 까지의 유클리드 거리를 줄이는 방향이 없어 더 움직이지 못한다.

그림 1. 비컨이 점을 끌어당기는 경우와 끌어당기지 못하는 경우.
의 커널은 의 모든 점을 끌어당기는 의 점을 모두 모은 집합이다. 비컨을 의 커널 안 어디에 놓아도 의 모든 점이 그 비컨에 끌리므로, 비컨 하나로 로봇을 모두 부를 수 있다. 그러나 커널이 없는 다각형도 있다.
꼭짓점이 개인 단순 직각다각형 가 주어질 때, 의 커널이 존재하는지 판정하는 프로그램을 작성하라.
입력
프로그램은 표준 입력에서 읽는다. 입력은 개의 테스트 케이스로 이루어진다. 첫 줄에 테스트 케이스의 개수 가 주어진다. 각 테스트 케이스의 첫 줄에는 단순 직각다각형 의 꼭짓점 개수 ()이 주어진다. 이어지는 개 줄에는 의 꼭짓점 좌표가 반시계 방향 순서로 주어진다. 각 줄에는 꼭짓점의 좌표와 좌표가 공백 하나로 구분되어 주어지고, 두 값 모두 이상 이하의 정수이다. 꼭짓점은 모두 서로 다르다.
출력
프로그램은 표준 출력에 쓴다. 각 테스트 케이스마다 정확히 한 줄을 출력한다. 그 테스트 케이스의 다각형에 커널이 있으면 YES를, 없으면 NO를 출력한다.