육각 타일 여행
시간 제한2초메모리 제한32 MB
좌회전 L번, 우회전 R번, 이동 M번을 섞은 명령 순서 가운데 육각형 격자 위 로봇이 빨강, 초록, 파랑 타일에 끝나는 경우의 수를 1,000,000,007로 나눈 나머지로 구합니다.
문제
육각형 타일을 벌집처럼 이어 붙인 판이 있다. 타일은 빨강, 초록, 파랑 중 하나로 칠하되, 변을 맞대고 있는 두 타일은 서로 다른 색이어야 한다. 이 조건을 만족하는 칠 방법 가운데 아래 그림의 판을 쓴다.

이 판의 어느 파란 타일 정중앙에 로봇이 오른쪽을 바라보고 놓여 있다. 로봇에게 줄 수 있는 명령은 LEFT, RIGHT, MOVE 세 가지다. 명령을 정확히 정의하려고 타일 중앙에 선 로봇이 바라볼 수 있는 방향을 아래 그림처럼 0번부터 5번까지 번호로 나타낸다. 처음에 로봇은 오른쪽, 즉 0번 방향을 바라본다.

LEFT: 지금 바라보는 방향이 번이면 명령을 수행한 뒤 번 방향을 바라본다. 가 0이었다면 5번 방향이 된다.RIGHT: 지금 바라보는 방향이 번이면 명령을 수행한 뒤 번 방향을 바라본다. 가 5였다면 0번 방향이 된다.MOVE: 지금 바라보는 방향으로 변 하나를 넘어 이웃한 타일의 정중앙으로 간다. 바라보는 방향은 그대로다.
로봇이 명령을 어떤 순서로 수행할지는 아직 정해지지 않았지만, LEFT를 번, RIGHT를 번, MOVE를 번 수행한다는 것은 정해져 있다. 그러므로 로봇이 수행할 수 있는 서로 다른 명령 순서는 모두
가지다. , , 이 주어질 때 로봇이 마지막에 멈춘 타일의 색이 빨강인 순서의 개수, 초록인 순서의 개수, 파랑인 순서의 개수를 구하는 프로그램을 작성하라.
입력
첫째 줄에 LEFT를 수행할 횟수 , RIGHT를 수행할 횟수 , MOVE를 수행할 횟수 이 공백으로 구분되어 주어진다. ()
출력
세 줄에 걸쳐 출력한다. 첫째 줄에는 로봇이 멈춘 타일이 빨강인 순서의 개수, 둘째 줄에는 초록인 순서의 개수, 셋째 줄에는 파랑인 순서의 개수를 출력한다. 답이 매우 커질 수 있으므로 세 값 모두 1,000,000,007로 나눈 나머지를 출력한다.