func_code_string: #include <bits/stdc++.h>   using namespace std;   void solve() {     int n, k;     cin >> n >> k;     vector<int> a(n + 1);     for (int i = 1; i <= n; ++i) {       cin >> a[i];     }     int u = 0, v = 1;     vector<vector<double>> d[2];     d[u].assign(n + 1, vector<double>(n + 1));     for (int i = 1; i <= n; ++i) {       for (int j = i + 1; j <= n; ++j) {         if (a[i] < a[j]) {           d[u][i][j] = 1.0;         } else {           d[u][j][i] = 1.0;         }       }     }     double p = 2.0 / (n * (n + 1));     for (; k--; swap(u, v)) {       d[v].assign(n + 1, vector<double>(n + 1));       for (int i = 1; i <= n; ++i) {         for (int j = 1; j <= n; ++j) {           if (i == j) {             continue;           }           for (int x = 1; x <= n; ++x) {             for (int y = x; y <= n; ++y) {               int ni = i;               if (x <= i && i <= y) {                 ni = x + y - i;               }               int nj = j;               if (x <= j && j <= y) {                 nj = x + y - j;               }               d[v][ni][nj] += d[u][i][j] * p;             }           }         }       }     }     double ans = 0.0;     for (int i = 1; i <= n; ++i) {       for (int j = 1; j < i; ++j) {         ans += d[u][i][j];       }     }     cout << ans << endl;   }   void init() {     ios::sync_with_stdio(false);     cin.tie(nullptr);     cout.precision(10);   }   int main() {     init();     solve();     return 0;   }   