아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

파인애플 피자

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

요약
n개의 점과 중심 Q가 주어질 때, Q에서 나가는 k개의 반직선으로 평면을 나눠 각 구역에 정확히 n/k개의 점이 오도록 할 수 있는지 판정한다.
난이도

어려움10점 중 8점

유형
기하, 정렬, 이분 탐색, 투 포인터
정답자
아직 제출이 없습니다

문제

아주 큰 파인애플 피자가 있다. 크기가 매우 커서 무한한 2차원 평면으로 취급한다. 피자 위에는 파인애플 조각이 nn개 있고, 각 조각은 점 P1,P2,…,PnP_1, P_2, \dots, P_n으로 나타낸다. 조각에는 넓이가 없다고 본다. 점 QQ와 사람 수 kk가 주어진다. 점 QQ에서 시작하는 반직선 kk개를 그어 피자를 kk개로 나눈다. 각 조각에 들어가는 파인애플 조각 수가 서로 같아야 한다. 경계선 위에는 파인애플 조각이 올라가면 안 된다. 이런 반직선 kk개를 그을 수 있는지 판단하는 프로그램을 작성하시오.

입력

첫째 줄에 nn과 kk가 주어진다. (2≤n,k≤80002 \le n, k \le 8000) 둘째 줄부터 nn개 줄에 점 PP의 좌표가 주어진다. i+1i + 1번째 줄에는 PiP_i의 xx 좌표와 yy 좌표가 주어진다. n+2n + 2번째 줄에는 점 QQ의 xx 좌표와 yy 좌표가 주어진다. 모든 PP와 QQ는 서로 겹치지 않는다. 모든 좌표는 −105-10^5 이상 10510^5 이하의 정수이다.

출력

조건을 만족하는 반직선을 그을 수 있으면 YES를, 아니면 NO를 출력한다.

힌트

다음 그림을 참조하자.

예제1

  1. 예제 1

    입력
    6 3
    -2 0
    1 1
    3 3
    -4 -4
    -2 4
    4 -2
    0 0
    
    예상 출력
    YES