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

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

플로터

시간 제한5초메모리 제한128 MB

요약
재귀적으로 정의된 n차 바이트곡선에서 m개의 정수 점 각각을 펜이 몇 초에 몇 번 지나는지 구한다.
난이도

어려움10점 중 8점

유형
재귀, 분할 정복, 구현, 수학
정답자
아직 제출이 없습니다

문제

새로 산 플로터를 시험해 보려고 바이트아사르는 몇 개의 바이트커브를 그려 보기로 했다.

nn차 바이트커브는 길이가 각각 2\sqrt{2}인 선분 2n2^n개로 이루어진다. 첫 번째 선분은 점 (0,0)(0, 0)과 (1,1)(1, 1)을 잇는다. nn차 바이트커브는 두 글자 {L,R}\{L, R\}로 이루어진 길이 2n−12^n - 1의 단어 LnL_n으로 표현된다. 이 단어의 ii번째 글자는, ii번째 선분을 그린 직후 펜이 90°90° 회전하여 다음 선분을 그리기 전에 왼쪽(LL) 또는 오른쪽(RR)으로 직각으로 방향을 바꾼다는 뜻이다.

L1L_1은 글자 LL 하나(왼쪽으로 한 번 회전)이고, L2=LLRL_2 = LLR(왼쪽 두 번 뒤 오른쪽 한 번)이다. 일반적으로 LnL_n은 Ln−1L_{n-1}로부터 다음과 같이 만든다. Ln−1L_{n-1}의 글자들을 한 칸씩 띄어 쓰고 맨 앞과 맨 뒤에도 빈칸을 하나씩 더 둔 다음, 새로 생긴 빈칸들을 왼쪽부터 L,R,L,R,…L, R, L, R, \dots 순서로 LL부터 번갈아 채운다. 예를 들어,

L2=LLR  ⟶  _ L _ L _ R _  ⟶  LLRLLRR=L3,L_2 = LLR \;\longrightarrow\; \_\,L\,\_\,L\,\_\,R\,\_ \;\longrightarrow\; LLRLLRR = L_3,

같은 방식으로 L4=LLRLLRRLLLRRLRRL_4 = LLRLLRRLLLRRLRR이다(아래 그림 참고).

선분 하나를 그리는 데 정확히 11초가 걸리고, 펜은 시각 00에 (0,0)(0, 0)에서 출발한다. 플로터가 그리는 동안 바이트아사르는 궁금해한다. 주어진 점 (x,y)(x, y)에 펜이 놓이는 시각은 언제인가? 예를 들어 위의 44차 바이트커브에서 펜은 77초 후와 다시 1111초 후에 (−3,−1)(-3, -1)에 놓인다. 바이트아사르의 질문에 답하라.

입력

첫 줄에 두 정수 nn과 mm (1≤n,m≤20001 \le n, m \le 2000)이 주어진다. 곡선은 LnL_n이고 질의할 점은 mm개다. 이어지는 mm개의 각 줄에는 두 정수 xix_i와 yiy_i (−109≤xi,yi≤109-10^9 \le x_i, y_i \le 10^9), 곧 ii번째 질의 점의 좌표가 주어진다. 질의 점이 곡선 위에 있지 않을 수도 있으며, 같은 점이 입력에 두 번 나타나지 않는다.

출력

질의 순서대로 mm개의 줄을 출력한다. ii번째 질의에 대해, nn차 곡선을 그리는 동안 펜이 (xi,yi)(x_i, y_i)에 놓이는 횟수인 음이 아닌 정수 kik_i(시각 00의 시작 위치도 한 번의 방문으로 센다)를 먼저 출력하고, 이어서 그 kik_i개의 방문 시각을 그리기 시작한 뒤 초 단위로 오름차순으로 출력한다. 한 줄의 모든 수는 공백 하나로 구분하며, 줄의 앞뒤에는 공백이 없어야 한다.

힌트

이 문제가 재미있었다면, 같은 질문을 더 빡빡한 제약에서 다루는 더 어려운 변형을 풀어 보라.

예제4

  1. 예제 1

    입력
    4 3
    -3 -1
    1 1
    -1 0
    
    예상 출력
    2 7 11
    1 1
    0
    
  2. 예제 2

    입력
    1 5
    0 0
    1 1
    0 2
    2 2
    1 0
    
    예상 출력
    1 0
    1 1
    1 2
    0
    0
    
  3. 예제 3

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

    입력
    6 4
    0 0
    1 1
    0 2
    -2 -4
    
    예상 출력
    1 0
    1 1
    1 2
    2 14 22