게임
시간 제한2초메모리 제한512 MB
선수의 수동 제거 순서를 정할 때 인접한 같은 숫자가 사슬처럼 합쳐지는 연쇄 소거를 최대화하여 자동으로 없어지는 공의 수를 출력합니다.
문제
보얀이 컴퓨터 게임을 한다. 처음에 공 N개가 한 줄로 늘어서 있다. 각 공에는 수가 적혀 있고, 이웃한 두 공에는 항상 서로 다른 수가 적혀 있다. 게임은 다음 단계로 진행된다.
- 플레이어가 줄에서 공 하나를 제거한다.
- 같은 수가 적힌 공이 연속해 있는 동안, 그 공들은 자동으로 줄에서 제거된다.
- 줄에 공이 남아 있으면 1단계로 돌아가고, 그렇지 않으면 게임이 끝난다.
점수는 자동으로 제거된 공의 개수이다. 게임의 목표는 점수를 최대로 만드는 것이다.
수가 {1, 2, 3, 2, 1, 5}인 공 6개로 하는 게임의 예를 보자.
- 보얀이 수 3이 적힌 공을 제거한다. 남은 공은 {1, 2, 2, 1, 5}이다.
- 같은 수가 적힌 연속한 공을 제거하면 {1, 2, 2, 1, 5} -> {1, 1, 5} -> {5}가 된다. 남은 공은 {5}이다.
- 공이 남아 있으므로 1단계로 돌아간다.
- 보얀이 수 5가 적힌 공을 제거한다. 남은 공은 {}이다.
- 같은 수가 적힌 연속한 공이 없다.
- 남은 공이 없으므로 게임이 끝난다.
자동으로 제거된 공의 개수는 4이다. 이 게임에서 가능한 최대 점수이다. 보얀은 게임을 많이 하지만, 자신이 최적으로 플레이하고 있는지 여전히 확신하지 못한다. 보얀이 달성할 수 있는 최고 점수를 구하는 프로그램 game을 작성하시오.
입력
첫째 줄에 양의 정수 N이 주어진다.
둘째 줄에 N개의 양의 정수가 주어진다. 이 수들은 공에 적힌 수이다.
출력
보얀이 달성할 수 있는 최대 점수를 출력한다.
제한
- 1 ≤ N ≤ 500
- 1 ≤ 공에 적힌 수 ≤ 1 000 000