func_code_string: #include <bits/stdc++.h>   using namespace std;   int fr[200004];   struct cmp {     bool operator()(int a, int b) const { return a > b; }   };   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     ;     auto make = [](vector<int>& a, int pos) {       swap(a[pos + 2], a[pos + 1]);       swap(a[pos + 1], a[pos]);     };     int t;     cin >> t;     while (t--) {       int n, i, j, k, l;       cin >> n;       vector<int> v(n);       vector<pair<int, int>> p(n);       for (i = 0; i < n; i++) {         cin >> v[i];         p[i] = {v[i], i};       }       sort(p.begin(), p.end());       for (i = 0; i < n; i++) v[p[i].second] = i;       int cnt = 0;       for (i = 0; i < n - 1; i++) {         for (j = i + 1; j < n; j++)           if (v[j] < v[i]) cnt++;       }       if (cnt & 1) {         for (i = 0; i < n - 1; i++)           if (p[i].first == p[i + 1].first) {             swap(v[p[i].second], v[p[i + 1].second]);             break;           }       }       vector<int> ans;       for (i = 0; i < n - 2; i++) {         int pos = min_element(v.begin() + i, v.end()) - v.begin();         while (pos > i + 1) {           make(v, pos - 2);           ans.push_back(pos - 2);           pos = pos - 2;         }         if (pos != i) {           make(v, i);           make(v, i);           ans.push_back(i);           ans.push_back(i);           pos = i;         }       }       for (i = 0; i < 3; i++) {         if (is_sorted(v.begin(), v.end())) {           break;         }         make(v, n - 3);         ans.push_back(n - 3);       }       if (!is_sorted(v.begin(), v.end())) {         cout << -1 <<   n ;         continue;       }       cout << ans.size() <<   n ;       for (int x : ans) cout << x + 1 <<    ;       cout <<   n ;     }   }   