func_code_string: #include <bits/stdc++.h>   using namespace std;   long long int dp[4011][4011];   long long int b[2000000];   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     long long int n;     cin >> n;     long long int a[n];     set<long long int> st;     for (int i = 0; i < n; i++) {       cin >> a[i];       st.insert(a[i]);     }     long long int k = 0;     for (auto u : st) {       b[u] = k;       k++;     }     for (int i = 0; i < n; i++) {       a[i] = b[a[i]];     }     for (int i = 0; i < n; i++) {       long long int f = 0;       for (int j = i - 1; j >= 0; j--) {         if (a[i] == a[j]) {           if (f == 1) continue;           f = 1;           dp[a[i]][a[j]]++;         } else {           dp[a[i]][a[j]] = max(dp[a[i]][a[j]], 1 + dp[a[j]][a[i]]);         }       }     }     long long int ans = 0;     for (int i = 0; i < n; i++) {       for (int j = 0; j < n; j++) ans = max(ans, dp[i][j]);     }     cout << ans + 1;   }   