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

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

용 곡선

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

요약
주어진 문자열 다시쓰기 규칙으로 만든 N차 드래곤 커브에서 X번째 선분을 그린 뒤 커서 좌표를 구합니다.
난이도

보통10점 중 7점

유형
재귀, 분할 정복, 기하, 시뮬레이션
정답자
아직 제출이 없습니다

문제

D0D_0은 문자열 Fa이다. n≥1n \ge 1이면 Dn−1D_{n-1}의 문자를 다음 규칙으로 바꿔 DnD_n을 만든다.

  • a는 aRbFR로 바꾼다.
  • b는 LFaLb로 바꾼다.
  • F, L, R은 그대로 둔다.

그래서 D0D_0은 Fa, D1D_1은 FaRbFR, D2D_2는 FaRbFRRLFaLbFR이다.

이 문자열은 그리기 명령으로 읽는다. F는 바라보는 방향으로 한 칸 나아가며 선을 긋고, L은 왼쪽으로 90도 돌고, R은 오른쪽으로 90도 돈다. a와 b는 아무 일도 하지 않는다. 커서는 좌표 (0,0)(0, 0)에서 (0,1)(0, 1) 방향을 보고 출발한다. DnD_n을 끝까지 실행해 그린 그림을 nn차 용 곡선이라 하고, 위 그림은 D10D_{10}이다.

F 하나가 한 걸음이다. DND_N의 명령을 앞에서부터 차례로 실행할 때 XX번째 걸음을 마친 커서의 좌표를 구하라.

입력

입력은 여러 개의 테스트로 이루어진다. 각 줄에 정수 XX와 NN이 공백 하나를 사이에 두고 주어지며, 입력은 파일 끝에서 끝난다.

0≤X≤10130 \le X \le 10^{13}, 0≤N≤1000 \le N \le 100이다. XX는 DND_N에 들어 있는 F의 개수를 넘지 않는다. XX가 0이면 커서는 아직 움직이지 않은 상태다.

출력

테스트마다 커서의 xx좌표와 yy좌표를 공백 하나로 구분해 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    500 10
    
    예상 출력
    18 16
    
  2. 예제 2

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

    입력
    0 0
    0 100
    1 0
    
    예상 출력
    0 0
    0 0
    0 1