#include #include using namespace std; int solve(int i, int j, vector &ducks, vector< vector > &dp) { if (dp[i][j] == -1) { if (i+1 > j) dp[i][j] = 0; else if (ducks[i] == ducks[j]) { dp[i][j] = 1 + solve(i+1, j-1, ducks, dp); } else { dp[i][j] = max(solve(i+1, j, ducks, dp), solve(i, j-1, ducks, dp)); } } return dp[i][j]; } int main(int argc, char** argv) { ios::sync_with_stdio(false); int N; while(cin >> N) { vector< vector > dp(N, vector(N, -1)); vector ducks(N); for(int i = 0; i < N; ++i) cin >> ducks[i]; cout << solve(0, N-1, ducks, dp) << endl; } return 0; }