완벽한 순례

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

요약
정수 격자점 N개로 닫힌 다각형을 만들되 서로 다른 변의 길이가 N-K 이하이고 인접하지 않은 변이 교차하지 않도록 하는 점들을 찾아 출력한다.
난이도

어려움10점 중 9점

유형
기하, 수학, 정수론, 구현
정답자
아직 제출이 없습니다

문제

순례자는 영원히 끝나지 않을 것만 같은 순례를 계속하고 있다. 순례자는 위치한 성지에서 다른 성지로 이동하고, 성지에 도착할 때마다 신께 기도를 드린다.

지상의 중앙에는 대성지가 있어, 대성지를 기준으로 성지들이 일정한 간격으로 나열되어 있다. 어떤 성지의 위치는 (X,Y)(X,Y)로 나타낼 수 있는데, 이 성지가 대성지로부터 동쪽으로 XX마일 (X<0X < 0인 경우, 서쪽으로 −X-X마일), 북쪽으로 YY마일 (Y<0Y < 0인 경우, 남쪽으로 −Y-Y마일) 떨어진 곳에 있다는 뜻이다. 여기서 마일이란, 신이 천 걸음 걸었을 때 이동한 거리를 뜻한다.

그렇게 −231≤X,Y<231-2^{31} \leq X,Y < 2^{31}인 모든 정수 X,YX,Y에 대해 (X,Y)(X,Y)에 성지가 존재하며, 지상에는 정확히 2642^{64} 개의 성지가 있게 된다.

순례자는 이 중 NN 개의 성지를 선택하여 순서대로 순례한 다음 처음으로 선택한 성지로 돌아오려고 한다. 이 성지들의 위치는, 완벽한 신이 가장 좋아하는 완벽한 모양인 정NN각형을 본떠서 선택할 것이다. 정NN각형의 특징은 매우 많지만, 대표적으로 다음과 같은 것이 있다.

  • 볼록 다각형이다.
  • 모든 변의 길이가 같다.
  • 모든 각의 크기가 같다.

순례자는 선택한 성지들이 정NN각형 모양을 이루도록 하고 싶었지만, 문제점이 있었다. ii번째로 선택한 성지의 위치를 (X_i,Y_i)(X\_i, Y\_i)로 표현할 때, X_i,Y_iX\_i, Y\_i가 모두 정수이기 때문에 정NN각형을 완벽히 만들지 못할 수도 있다는 사실을 깨달았기 때문이다.

그래서 그 대신 조건을 완화하여 다음의 조건을 만족하도록 성지를 선택하려고 한다. 편의를 위해서 N+iN+i번째 성지와 ii번째 성지를 같은 것으로 생각한다.

  • ii 번째, i+1i+1 번째, i+2i+2 번째 성지가 반시계방향으로 위치해 있다.
  • ii 번째와 i+1i+1 번째 성지간의 유클리드 거리를 L_i=(X_i−X_i+1)2+(Y_i−Y_i+1)2L\_i = \sqrt{(X\_i - X\_{i+1})^2 + (Y\_i - Y\_{i+1})^2} 라고 하자. 이 때, 11 이상 NN이하의 정수 ii에 대해, L_i=L_1L\_i = L\_1을 만족하는 ii가 KK 개 이상 존재해야 한다.
  • 22 이상 N−2N-2 이하의 kk에 대해, ii 번째 성지와 i+1i+1 번째 성지를 연결하는 선분과, i+ki+k 번째 성지와 i+k+1i+k+1 번째 성지를 연결 하는 선분은 서로 만나서는 안된다.

순례자가 조건을 만족하면서 NN 개의 성지를 선택할 수 있는지 없는지의 여부를 구하고, 선택할 수 있다면 어떤 위치에 있는 성지들을 어떤 순서로 선택해야 하는지 구하여라

입력

첫 번째 줄에, 선택할 성지의 개수와 성지의 거리에 대한 조건을 나타내는 두 자연수 NN, KK (3≤N≤2 500,1≤K≤N3 \le N \le 2\ 500, 1 \le K \le N)가 주어진다.

출력

첫 번째 줄에 조건을 만족하면서 NN 개의 성지를 선택할 수 있는지 없는지의 여부를 YES혹은 NO로 출력한다.

성지를 선택할 수 있는 경우, 다음 줄부터 시작하여 NN 개의 줄에 걸쳐 선택한 성지들의 위치를 출력한다. ii 번째 줄에는 ii 번째로 선택된 성지의 위치를 나타내는 두 정수 X_iX\_i와 Y_iY\_i를 공백으로 구분하여 출력한다. 출력된 모든 위치에 성지가 존재해야만 정답으로 인정된다.

예제2

  1. 예제 1

    입력
    4 3
    
    예상 출력
    YES
    0 0
    13 0
    8 12
    5 12
    
  2. 예제 2

    입력
    3 3
    
    예상 출력
    NO