채굴권 분할
시간 제한1초메모리 제한2048 MB
원을 자르는 선분들과 원 내부의 두 점이 주어질 때, 한 영역을 고르면 직선 경계를 공유하지 않고 B가 두 점을 모두 가질 수 있는지 판정한다.
문제
어느 원형의 땅 안에는 서로 다른 두 위치에 매우 귀중한 자원이 매장되어 있다. 이 자원들의 엄청난 가치 때문에 많은 회사가 채굴권을 얻기 위해 경쟁했지만, 엄격한 심사 과정을 통해 두 개의 기업만 선정되었다. 여러분의 회사는 최종적으로 채굴권을 얻은 두 회사에 포함되었다. 특혜 시비를 피하기 위해 정부는 두 회사에게 이 땅을 배분하는 공정한 방법을 고안했는데, 그 방법은 다음과 같다:
규칙 1 (A 사의 분할): 한 회사 A 는 개보다 적은 수의 선분을 사용하여 원형의 토지를 더 작은 영역으로 나눌 수 있다. 각 선분은 원의 둘레 위에 있는 한 점에서 시작하여 원의 둘레 위에 있는 다른 한 점에서 끝난다.- 규칙 2 (경계 침범 금지): 직선 경계를 공유하며 맞닿아 있는 영역은 서로 다른 회사가 개발해야 한다.
- 규칙 3 (B 사의 수락과 선택권): B 회사는 A 회사가 제안한 분할을 수락하거나 거부할 권리가 있다. B 회사가 수락할 경우, B 회사는 분할된 영역 중 하나를 선택할 권리가 있다. 그외의 나머지 영역들은 규칙 2 에 따라 두 회사에 자동으로 할당된다.
당신은 자원이 매장된 두 위치 과 를 이미 알고 있다. 당신은 B 회사를 대표해 위치 모두가 B 회사에 할당된 영역 안에 놓일 수 있도록 A 회사의 분할을 수락할지 거부할지를 결정해야 한다.
선분의 집합으로 표현되는 회사 A 의 분할 제안과 자원이 묻혀 있는 두 위치가 주어질 때, 회사 B 가 이를 수락해야 하는지 그렇지 않은지를 결정하는 프로그램을 작성하라.
입력
입력은 표준 입력을 사용한다. 첫 번째 줄에 원을 분할하는 선분의 개수를 나타내는 보다 작은 정수 이 주어진다. 그 다음 개 줄에 개 선분에 대한 정보가 주어진다. 각 줄은 하나의 선분이 갖는 두 끝점을 나타내는 두 개의 정수 인덱스로 이루어진다. 원의 둘레는 개의 단위로 나누어지며, 원의 중심에서 정확히 동쪽에 있는 원 둘레 위의 점이 인덱스 을 갖고, 이 인덱스는 반시계 방향으로 증가하여 까지의 값을 가질 수 있다. 여기서 중복되는 선분은 존재하지 않는다. 선분들을 표현하는 개의 줄이 끝나면, 자원이 매장된 서로 다른 두 위치 과 의 정보를 담은 두 줄이 추가로 주어진다. 각 위치는 두 정수로 표시된다. 첫 번째 정수는 방향을 나타내며, 중심에서 출발하여 매장된 위치를 통과하는 반직선이 원의 둘레와 만나는 지점의 인덱스로 표현된다. 두번째 정수는 중심에서 매장된 자원까지의 거리를 나타낸다. 거리는 원의 반지름을 개의 단위로 나누어 측정되며, 중심의 거리는 이고 원의 둘레에 있는 점들의 거리는 이다. 매장된 자원은 원 안에 있으며, 선분 위에 놓이는 일도 없다는 것이 보장된다.
출력
출력은 표준 출력을 사용한다. 출력은 정확히 한 줄로 이루어진다. B 회사가 두 자원의 위치 과 모두를 획득할 수 있다면 “YES”, 그렇지 않으면 “NO”를 출력한다.