만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

게임

시간 제한2초메모리 제한512 MB

요약
선수의 수동 제거 순서를 정할 때 인접한 같은 숫자가 사슬처럼 합쳐지는 연쇄 소거를 최대화하여 자동으로 없어지는 공의 수를 출력합니다.
난이도

어려움10점 중 9점

유형
동적 계획법, 스택, 시뮬레이션, 게임 이론
정답자
아직 제출이 없습니다

문제

보얀이 컴퓨터 게임을 한다. 처음에 공 N개가 한 줄로 늘어서 있다. 각 공에는 수가 적혀 있고, 이웃한 두 공에는 항상 서로 다른 수가 적혀 있다. 게임은 다음 단계로 진행된다.

  1. 플레이어가 줄에서 공 하나를 제거한다.
  2. 같은 수가 적힌 공이 연속해 있는 동안, 그 공들은 자동으로 줄에서 제거된다.
  3. 줄에 공이 남아 있으면 1단계로 돌아가고, 그렇지 않으면 게임이 끝난다.

점수는 자동으로 제거된 공의 개수이다. 게임의 목표는 점수를 최대로 만드는 것이다.

수가 {1, 2, 3, 2, 1, 5}인 공 6개로 하는 게임의 예를 보자.

  1. 보얀이 수 3이 적힌 공을 제거한다. 남은 공은 {1, 2, 2, 1, 5}이다.
  2. 같은 수가 적힌 연속한 공을 제거하면 {1, 2, 2, 1, 5} -> {1, 1, 5} -> {5}가 된다. 남은 공은 {5}이다.
  3. 공이 남아 있으므로 1단계로 돌아간다.
  1. 보얀이 수 5가 적힌 공을 제거한다. 남은 공은 {}이다.
  2. 같은 수가 적힌 연속한 공이 없다.
  3. 남은 공이 없으므로 게임이 끝난다.

자동으로 제거된 공의 개수는 4이다. 이 게임에서 가능한 최대 점수이다. 보얀은 게임을 많이 하지만, 자신이 최적으로 플레이하고 있는지 여전히 확신하지 못한다. 보얀이 달성할 수 있는 최고 점수를 구하는 프로그램 game을 작성하시오.

입력

첫째 줄에 양의 정수 N이 주어진다.

둘째 줄에 N개의 양의 정수가 주어진다. 이 수들은 공에 적힌 수이다.

출력

보얀이 달성할 수 있는 최대 점수를 출력한다.

제한

  • 1 ≤ N ≤ 500
  • 1 ≤ 공에 적힌 수 ≤ 1 000 000

예제2

  1. 예제 1

    입력
    6
    1 2 3 2 1 5
    
    예상 출력
    4
    
  2. 예제 2

    입력
    9
    1 5 1 3 2 4 2 3 1
    
    예상 출력
    6