호떡 뒤집기
시간 제한2초메모리 제한1024 MB
팬케이크 N개의 목표 W/B 배열이 같은 색 인접 쌍에서 앞부분이나 뒷부분을 뒤집어 만들어질 수 있는지 판별하고, 가능하면 연산 순서를 출력합니다.
문제
프라이팬 위에 호떡 개가 일렬로 놓여 있다. 각 호떡은 앞면이 흰색, 뒷면이 갈색이다. 처음에는 모든 호떡의 앞면이 보인다. 호떡 요리사 현준이는 아래 절차로 작업을 최대 번 수행할 수 있다.
- 번째 호떡과 번째 호떡에 보이는 색이 같도록 정수 를 고른다. ()
- 번째 호떡에 보이는 색이 흰색이면 1번째부터 번째까지의 호떡을 모두 뒤집는다. 갈색이면 번째부터 번째까지의 호떡을 모두 뒤집는다.
현준이는 작업을 수행해 원하는 색 배열을 만들려고 한다. 원하는 배열을 얻을 수 있는지 판단하고, 얻을 수 있다면 방법 중 하나를 찾아 알려 주자.
입력
첫 번째 줄에 호떡의 개수 이 주어진다. ()
두 번째 줄에 현준이가 원하는 색 배열을 나타내는 길이 의 문자열 가 주어진다. 가 W이면 번째 호떡의 앞면이 보여야 하고, B이면 뒷면이 보여야 한다.
출력
원하는 배열을 만들 수 있으면 첫 번째 줄에 작업 횟수 를 출력한다. ()
다음 줄에는 각 작업에서 고른 의 값을 순서대로 한 줄에 하나씩 출력한다. () 작업 순서가 여러 개라면 그중 아무거나 출력한다. 의 값을 최소화할 필요는 없다.
만들 수 없으면 첫 번째 줄에 -1을 출력한다.