#include #include #define LL long long #define MAX 6000 using namespace std; vector> dyn(MAX, vector(MAX, 0)); vector vstup(MAX); int main() { std::iostream::sync_with_stdio(false); LL N; while (cin >> N) { for (int i = 0; i < N; ++i) { cin >> vstup[i]; } for (int k = 0; k < N; ++k) { for (int l = 0; l < N - k; ++l) { LL i = l; LL j = l + k; if (k == 0) { dyn[i][j] = 0; continue; } else { if (vstup[i] == vstup[j]) { dyn[i][j] = 1 + dyn[i+1][j-1]; } else { dyn[i][j] = max(dyn[i+1][j], dyn[i][j-1]) ; } } } } cout << dyn[0][N-1] << endl; } return 0; }