새트리

면접 대비

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

요약
기약분수가 주어질 때 유클리드 알고리즘과 비슷한 방식으로 버드 트리에서 그 분수까지의 L, R 경로를 구한다.
난이도

보통10점 중 4점

유형
수학, 그리디, 시뮬레이션
정답자
아직 제출이 없습니다

문제

새트리(Bird tree)는 무한 이진 트리입니다. 각 노드에는 양의 유리수가 하나씩 들어 있고, 루트 노드에는 1/11/1이 들어 있습니다.

트리 전체를 bird라고 할 때, 다음 두 연산을 정의합니다.

  • bird+1\text{bird}+1: 트리에 들어 있는 모든 분수에 11을 더해서 얻는 트리
  • 1/bird1/\text{bird}: 트리에 들어 있는 모든 분수를 역수로 뒤집어서 얻는 트리

새트리는 재귀적으로 정의됩니다. 루트에는 1/11/1이 있고, 루트의 왼쪽 서브트리는 1/(bird+1)1/(\text{bird}+1)이며 오른쪽 서브트리는 1/bird+11/\text{bird}+1입니다. 즉, 왼쪽 서브트리는 새트리 전체의 모든 분수 xx를 1x+1\frac{1}{x+1}로 바꾼 트리이고, 오른쪽 서브트리는 모든 분수 xx를 1x+1=x+1x\frac{1}{x}+1=\frac{x+1}{x}로 바꾼 트리입니다.

놀랍게도 이 트리에는 모든 양의 유리수가 정확히 한 번씩 나타납니다. 따라서 모든 기약분수는 루트에서 그 노드까지 가는 경로가 유일합니다. 경로는 왼쪽 자식으로 내려갈 때 LL, 오른쪽 자식으로 내려갈 때 RR로 나타냅니다. 예를 들어 2/52/5는 경로 LRRLRR로 표현됩니다.

기약분수가 주어졌을 때, 루트에서 그 분수가 있는 노드까지 가는 경로를 LL과 RR로 출력하는 프로그램을 작성하세요.

입력

첫째 줄에 기약분수가 a/ba/b 꼴로 주어집니다. 여기서 aa는 분자, bb는 분모이며 문자 /로 구분됩니다. aa와 bb가 동시에 11인 경우는 없고, gcd⁡(a,b)=1\gcd(a, b) = 1을 만족합니다. (1≤a,b≤1091 \le a, b \le 10^9) 경로의 길이는 10,00010{,}000을 넘지 않습니다.

출력

첫째 줄에 루트에서 입력으로 주어진 기약분수가 있는 노드까지 가는 경로를 LL과 RR로 이루어진 문자열로 출력합니다.

예제4

  1. 예제 1

    입력
    2/5
    
    예상 출력
    LRR
    
  2. 예제 2

    입력
    1/2
    
    예상 출력
    L
    
  3. 예제 3

    입력
    2/1
    
    예상 출력
    R
    
  4. 예제 4

    입력
    2/3
    
    예상 출력
    LL