만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

페리 (어려움)

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

요약
2n대 차량이 페리를 여러 번 탈 때 주어진 위치 순서가 나오는 최소 페리 횟수와 L/R 문자열을 구합니다.
난이도

어려움10점 중 8점

유형
수학, 비트 연산
정답자
아직 제출이 없습니다

문제

어느 날 친구들이 각자 2n2n대의 차에 나눠 타고 호수 지방으로 여행을 떠났다. 차에는 1번부터 2n2n번까지 번호가 붙어 있었고, 처음에는 이 순서대로 달렸다.

여행 중 차량 행렬은 페리를 여러 번 만났다. 페리는 2n2n대 전부를 실을 수 있는 크기였고, 그 순간 주변에 다른 차는 없었다. 차들이 페리를 한 번 탈 때마다 순서가 뒤섞였다. 페리에 싣고 내리는 방식 때문이다.

페리는 길고 좁은 배다. 차가 두 줄로 nn대씩 들어갈 만큼의 공간이 있다. 실을 때는 앞의 nn대가 첫 번째 줄이 되고, 뒤의 nn대가 두 번째 줄이 된다. 내릴 때는 모든 차가 동시에 출발하며, 한 줄로 이어져 행렬을 다시 만든다. 새 행렬의 첫 차는 오른쪽 줄의 첫 차이고, 둘째 차는 왼쪽 줄의 첫 차다. 셋째 차는 오른쪽 줄의 둘째 차이며, 이런 식으로 오른쪽과 왼쪽을 번갈아 뽑는다.

위 그림은 1번부터 6번까지의 차가 이 순서대로 타입 R 페리에 막 올라탄 모습이다(그림의 아래쪽에서 들어온다). 이 차들은 1, 4, 2, 5, 3, 6 순서로 페리를 떠난다.

페리에는 두 종류가 있다. 타입 L 페리에서는 승무원이 차에게 왼쪽 줄을 먼저 채우라고 지시한다. 타입 R 페리에서는 오른쪽 줄을 먼저 채운다. 페리의 종류는 내리는 순서에 영향을 주지 않는다. 가장 먼저 내리는 차는 언제나 오른쪽 줄의 첫 차다.

여행은 이제 끝났다. 내 차는 xx번 차였으므로, 출발할 때 xx번째에 있었다. 나는 양의 정수 수열 a1,…,aka_1, \ldots, a_k를 기억하고 있다. 수 aia_i는 어느 시점에 내 차가 행렬의 처음부터 aia_i번째에 있었다는 뜻이다. 수열은 시간 순서이며, 모든 ii에 대해 내 차는 aia_i번째에 있다가 그 다음에 ai+1a_i + 1번째에 있었다.

여행 중 만난 페리의 최소 개수 ff를 구하라. 증명으로 정확히 ff개의 L과 R로 이루어진 문자열 하나도 함께 제시하라. 이 문자열은 주어진 순서대로 ff개의 페리가 타입 L과 타입 R이었을 수 있는 경우여야 한다.

입력

입력 파일의 첫 줄에는 테스트 케이스의 수 t=100t = 100이 주어진다. 각 테스트 케이스 앞에는 빈 줄이 하나 있다.

각 테스트 케이스는 두 줄로 이루어진다. 첫 줄에는 정수 nn, xx, kk가 주어지며, 1≤x≤2n1 \le x \le 2n이다. 둘째 줄에는 정수 a1,…,aka_1, \ldots, a_k가 주어진다.

출력

각 테스트 케이스마다 한 줄에 정수 ff, 콜론, 그리고 가능한 가장 짧은 L과 R의 문자열 하나를 출력한다. 출력에는 공백이 없다.

제한

1≤n≤10181 \le n \le 10^{18}

1≤k≤1041 \le k \le 10^4

힌트

첫 번째 예제에서는 페리가 없었으므로 차는 처음 자리에 그대로 있었다.

두 번째 예제에서는 첫 번째 타입 L 페리가 차를 2번 자리로, 두 번째 타입 L 페리가 4번 자리로 옮긴다.

세 번째 예제에서는 RR이 차를 2번에서 5번으로, L이 5번에서 3번으로, RRL이 3번에서 1번으로, L이 1번에서 2번으로 옮긴다.

예제1

  1. 예제 1

    입력
    3
    
    10 1 3
    1 1 1
    
    10 1 2
    2 4
    
    3 2 4
    5 3 1 2
    
    예상 출력
    0:
    2:LL
    7:RRLRRLL