만드는 중입니다

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

채굴권 분할

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

요약
원판을 나누는 선분들과 원 안의 두 자원 위치가 주어질 때, 두 위치가 같은 색으로 칠해지는 영역에 놓일 수 있는지 판단합니다.
난이도

보통10점 중 6점

유형
기하, 수학, 그래프
정답자
아직 제출이 없습니다

문제

원형 땅 안의 서로 다른 두 위치에 매우 귀중한 자원이 묻혀 있다. 자원의 가치가 워낙 커서 많은 회사가 채굴권을 얻으려고 경쟁했지만, 엄격한 심사를 거쳐 두 회사만 선정되었다. 여러분의 회사는 최종적으로 채굴권을 얻은 두 회사 중 하나에 포함되었다. 특혜 시비를 피하기 위해 정부는 두 회사가 이 땅을 나누는 공정한 방법을 고안했고, 그 방법은 다음과 같다.

  • 규칙 1 (A 사의 분할): 한 회사 A 는 10 00010\,000개보다 적은 수의 선분을 사용하여 원형의 토지를 더 작은 영역으로 나눌 수 있다. 각 선분은 원의 둘레 위에 있는 한 점에서 시작하여 원의 둘레 위에 있는 다른 한 점에서 끝난다.
  • 규칙 2 (경계 침범 금지): 직선 경계를 공유하며 맞닿아 있는 영역은 서로 다른 회사가 개발해야 한다.
  • 규칙 3 (B 사의 수락과 선택권): B 회사는 A 회사가 제안한 분할을 수락하거나 거부할 권리가 있다. B 회사가 수락하면, B 회사는 분할된 영역 중 하나를 고를 권리가 있다. 나머지 영역은 규칙 2에 따라 두 회사에 자동으로 배정된다.

여러분은 자원이 묻힌 두 위치 p1p_1과 p2p_2를 이미 알고 있다. 여러분은 B 회사를 대표하여, 두 위치가 모두 B 회사에 배정된 영역 안에 놓이도록 A 회사의 분할을 수락할지 거부할지 결정해야 한다.

선분의 집합으로 표현된 A 회사의 분할 제안과 자원이 묻힌 두 위치가 주어질 때, B 회사가 이를 수락해야 하는지 판단하는 프로그램을 작성하라.

입력

입력은 표준 입력으로 받는다. 첫 번째 줄에는 원을 분할하는 선분의 개수 nn이 주어진다. nn은 10 00010\,000보다 작은 정수이다. 이어지는 nn개의 줄에는 nn개 선분의 정보가 주어진다. 각 줄은 한 선분의 두 끝점을 나타내는 두 정수 인덱스로 이루어진다. 원의 둘레는 3 6003\,600개의 단위로 나뉘며, 원의 중심에서 정확히 동쪽에 있는 둘레 위의 점이 인덱스 00을 가진다. 인덱스는 반시계 방향으로 증가하여 3 5993\,599까지 가질 수 있다. 중복되는 선분은 없다. nn개의 줄이 끝나면, 자원이 묻힌 서로 다른 두 위치 p1p_1과 p2p_2의 정보를 담은 두 줄이 추가로 주어진다. 각 위치는 두 정수로 표시된다. 첫 번째 정수는 방향을 나타내며, 중심에서 출발하여 묻힌 위치를 지나는 반직선이 원의 둘레와 만나는 지점의 인덱스이다. 두 번째 정수는 중심에서 묻힌 자원까지의 거리이다. 거리는 원의 반지름을 1 0001\,000개의 단위로 나누어 측정하며, 중심의 거리는 00이고 둘레 위 점들의 거리는 1 0001\,000이다. 묻힌 자원은 원 안에 있으며, 선분 위에 놓이지 않는다는 것이 보장된다.

출력

출력은 표준 출력으로 정확히 한 줄을 쓴다. B 회사가 두 자원의 위치 p1p_1과 p2p_2를 모두 획득할 수 있으면 "YES"를, 그렇지 않으면 "NO"를 출력한다.

예제2

  1. 예제 1

    입력
    3
    450 1800
    900 0
    450 2700
    900 850
    450 500
    
    예상 출력
    NO
    
  2. 예제 2

    입력
    4
    450 1800
    0 1350
    1350 2700
    2700 0
    450 500
    3150 950
    
    예상 출력
    YES