시프트 연산
시간 제한2초메모리 제한512 MB
0과 1로 이루어진 수열에서 마지막에 0을 넣는 L-시프트와 처음에 0을 넣는 R-시프트만 사용해 모든 1을 없애는 최소 연산 수와 그 방법을 구한다.
문제
과 로 이루어진 길이 의 수열 이 주어진다. 주어진 수열에는 다음과 같이 정의된 두 가지 연산을 원하는 대로 적용할 수 있다.
- L-시프트: 수열의 원소를 한 자리씩 앞으로 옮긴다. 순서대로 은 , 는 , , 은 의 값으로 바뀌며, 수열의 마지막 원소 은 으로 바뀐다.
- R-시프트: 수열의 원소를 한 자리씩 뒤로 옮긴다. 순서대로 은 , 은 , , 는 의 값으로 바뀌며, 수열의 첫 번째 원소 은 으로 바뀐다.
최소한의 횟수로 연산을 적용하여 수열의 모든 원소를 으로 만드는 방법을 구하시오.
입력
첫 번째 줄에 정수 이 주어진다.
두 번째 줄에 정수 이 공백으로 구분되어 주어진다.
출력
첫 번째 줄에 수열의 모든 원소를 으로 만들기 위한 연산 최소 적용 횟수 을 출력한다.
두 번째 줄에 최소한의 횟수로 연산을 적용하여 수열의 모든 원소를 으로 만드는 방법을 나타내는 길이 의 문자열을 출력한다. 이 문자열은 L과 R로 이루어져야 하며, 문자열의 번째 문자는 번째로 적용해야 하는 연산의 종류를 나타내야 한다. L은 L-시프트, R은 R-시프트를 의미한다.
가능한 답이 여러 가지라면 그중 아무거나 출력한다.
제한
- 수열에 이 최소 개 이상 존재한다.