func_code_string: #include <bits/stdc++.h>   const int N = 502;   void sw(float* x) {     float tmp = *x;     *x = *(x + 2);     *(x + 2) = *(x + 1);     *(x + 1) = tmp;   }   int main() {     int _t;     scanf( %d , &_t);     while (_t--) {       static float arr[N];       static int anss[N * N];       static int tm[N];       memset(tm, 0, sizeof(tm));       int n;       scanf( %d , &n);       int f2 = -1;       for (int i = 1; i <= n; i++) {         int a;         scanf( %d , &a);         tm[a]++;         if (tm[a] == 2) f2 = a;         arr[i] = a + 0.0001 * tm[a];       }       int nx = 0;       for (int i = 1; i < n; i++)         for (int j = i + 1; j <= n; j++)           if (arr[i] > arr[j]) nx++;       if (nx & 1) {         if (f2 != -1) {           int f21 = -1, f22 = -1;           for (int i = 1; i <= n; i++)             if (((int)arr[i]) == f2) {               if (f21 == -1)                 f21 = i;               else if (f22 == -1)                 f22 = i;               else                 break;             }           std::swap(arr[f21], arr[f22]);           nx++;         } else {           printf( -1 n );           continue;         }       }       int ans = 0;       while (nx) {         for (int i = 1; i <= n - 2; i++) {           if (arr[i] < arr[i + 2] && arr[i + 2] < arr[i + 1] ||               arr[i] > arr[i + 2] && arr[i + 2] > arr[i + 1]) {             sw(arr + i);             anss[++ans] = i;           }           if (arr[i] < arr[i + 1] && arr[i] > arr[i + 2] ||               arr[i] > arr[i + 1] && arr[i + 1] > arr[i + 2]) {             sw(arr + i);             nx -= 2;             anss[++ans] = i;           }         }       }       printf( %d n , ans);       for (int i = 1; i <= ans; i++) printf( %d  , anss[i]);       printf(  n );     }     return 0;   }   