돌림판 (Small)
시간 제한1초메모리 제한256 MB
R, G, B로 칠해진 원형 배열을 주어진 국소 규칙으로 K번 다시 칠한 뒤, 마지막에 각 색의 개수를 출력한다.
문제
지훈이는 경품 행사를 열려고 돌림판을 준비했다. 돌림판의 원판은 등분되어 있고, 각 칸은 빨간색, 초록색, 파란색 중 하나로 칠해져 있다. 행사 규칙은 간단하다. 참가자는 빨간색, 초록색, 파란색 중 하나를 고른다. 돌림판을 돌려서 스피너가 멈춘 칸의 색이 자기가 고른 색과 같은 사람 모두에게 상품을 준다.
원판이 등분되어 있으므로, 개의 칸 중 빨간색이 개, 초록색이 개, 파란색이 개라면 각 색이 걸릴 확률은 차례대로 , , 이다. 즉 어느 칸에 어떤 색이 칠해졌는지 모른다면 이론적으로 세 색이 걸릴 확률은 모두 같다.
지훈이가 참가자들이 고른 색을 조사해 보니 세 색 중 특정 색을 유난히 많이 골랐다. 이유를 찾아보니, 어떤 사람이 돌림판을 미리 보고 가장 많이 칠해진 색을 친분이 있는 참가자 몇 명에게 알려 준 것이었다. 그래서 지훈이는 돌림판의 색을 모두 바꾸려고 한다. 색을 바꾸는 과정은 다음과 같다. 모든 칸의 색은 동시에 바뀐다.
를 돌림판의 임의의 칸이라고 하자.
- 의 왼쪽 칸, , 의 오른쪽 칸에 칠해진 색이 모두 같거나 모두 다르면, 의 색을 파란색으로 바꾼다.
- 그렇지 않으면 1에서 본 세 칸은 색이 2개, 색이 1개 칠해진 상황이다.
- 아래 세 경우 중 하나라도 만족하면 의 색을 빨간색으로 바꾼다. 그렇지 않으면 초록색으로 바꾼다.
가 빨간색이고 가 초록색인 경우, 가 초록색이고 가 파란색인 경우, 가 파란색이고 가 빨간색인 경우
칸은 원형으로 이어져 있어서 왼쪽 이웃과 오른쪽 이웃도 원판을 한 칸 돌아 정해진다. 이면 의 왼쪽 칸과 오른쪽 칸이 모두 자신이고, 이면 두 이웃이 같은 칸이다.
지훈이는 이렇게 색을 한 번 바꾸었다. 그래도 불안해서 같은 방법으로 번 더 바꾸었다. 색을 모두 번 바꾼 뒤 돌림판에 각 색이 몇 칸씩 칠해져 있는지 구하자.
입력
첫째 줄에 과 가 공백으로 구분되어 주어진다.
둘째 줄에 길이가 인 문자열이 주어진다. 이 문자열은 돌림판의 각 칸에 칠해진 색을 시계 방향으로 나타낸 것이다. 빨간색은 R, 초록색은 G, 파란색은 B로 주어진다.
,
출력
색을 번 바꾼 뒤, 빨간색으로 칠해진 칸의 수, 초록색으로 칠해진 칸의 수, 파란색으로 칠해진 칸의 수를 이 순서대로 공백으로 구분해 한 줄에 출력한다.