스누커 최고 득점

스누커 테이블에 남은 공이 주어질 때, 빨강과 색깔 공 교대 규칙을 지키며 한 턴에 얻을 수 있는 최대 점수를 계산한다.

보통6그리디구현수학시뮬레이션면접 대비아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

스누커는 두 선수가 직사각형 테이블에서 번갈아 공을 포켓에 넣는 큐 스포츠다. 공은 색마다 점수가 정해져 있다.

redyellowgreenbrownbluepinkblack
점수1234567

한 차례는 연속으로 공을 넣는 과정이다. 규칙이 허락하는 공이 테이블에 하나도 없으면 그 차례가 끝난다. 공 하나를 넣을 때 적용되는 규칙은 다음과 같다.

  • 바로 앞에 넣은 공이 red면, 다음에는 red가 아닌 색 공을 넣어야 한다.
  • 그렇지 않고 테이블에 red가 하나라도 남아 있으면, 다음에는 red를 넣어야 한다.
  • 둘 다 아니면 테이블에 남은 공 중에서 아무거나 넣을 수 있다.

차례의 첫 공은 바로 앞에 넣은 공이 없는 상태에서 같은 규칙을 따른다.

넣은 red는 테이블로 돌아오지 않는다. red 바로 다음에 넣은 색 공은 곧바로 테이블로 돌아오며, 마지막 red 바로 다음에 넣은 색 공도 돌아온다. 그 밖에 넣은 공은 테이블에서 빠진다.

노련한 선수는 테이블을 한 번 훑어보는 것만으로 남은 공에서 몇 점을 낼 수 있는지 바로 계산한다. 이제 막 스누커를 시작한 선수에게는 쉽지 않은 일이다. 테이블에 남아 있는 공이 주어질 때, 한 차례에 얻을 수 있는 최대 점수를 구하는 프로그램을 작성하시오. 공을 하나 넣을 때마다 그 공의 점수를 얻는다.

입력

첫째 줄에 테이블에 남아 있는 공의 개수 N (1 ≤ N ≤ 21)이 주어진다.

다음 N개 줄에는 공의 색이 한 줄에 하나씩 주어진다. 색은 red, yellow, green, brown, blue, pink, black 중 하나다.

공이 주어지는 순서는 정해져 있지 않고, yellow, green, brown, blue, pink, black은 각각 최대 한 번만 나온다.

출력

한 차례에 얻을 수 있는 최대 점수를 출력한다.