func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<string> split(const string& s, char c) {     if (s.length() == 0) return vector<string>();     vector<string> v;     stringstream ss(s);     string x;     while (getline(ss, x, c)) {       v.emplace_back(x);     }     return std::move(v);   }   vector<int> splitInt(const string& s, char c) {     if (s.length() == 0) return vector<int>();     vector<int> v;     stringstream ss(s);     int x;     string str;     while (getline(ss, str, c)) {       stringstream si(str);       si >> x;       v.emplace_back(x);     }     return std::move(v);   }   int main() {     ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     int t = 0;     cin >> t;     while (t-- > 0) {       int n;       cin >> n;       vector<int> arr(n, 0);       for (int i = 0; i < n; ++i) cin >> arr[i];       vector<long long> seen(3001, 0);       vector<vector<long long>> left(3001);       for (int i = 0; i < n; ++i) {         seen[arr[i]]++;         left[i] = seen;       }       seen = vector<long long>(3001, 0);       vector<vector<long long>> right(3001);       for (int i = n - 1; i >= 0; --i) {         seen[arr[i]]++;         right[i] = seen;       }       long long count = 0;       for (int j = 1; j < n; ++j) {         for (int k = j + 1; k + 1 < n; ++k) {           int aj = arr[j];           int ak = arr[k];           if (j - 1 >= 0 && k + 1 < n) {             count += left[j - 1][ak] * right[k + 1][aj];           }         }       }       cout << count <<   n ;     }     return 0;   }   