func_code_string: #include <bits/stdc++.h>   using namespace std;   int A[(1 << 20) + 4], n;   long long store[21][2], INV = 0;   long long query(int l, int r, int no) {     return (A + r + 1 - upper_bound(A + l, A + r + 1, no));   }   void gen(int de, int l, int r) {     if (!de) return;     gen(de - 1, l, (l + r) / 2);     gen(de - 1, (l + r) / 2 + 1, r);     int a = l, b = (l + r) / 2, c = r;     for (int i = a; i <= b; i++) {       long long nos = query(b + 1, c, A[i]);       store[de][1] += nos;     }     for (int i = b + 1; i <= c; i++) {       long long nos = query(a, b, A[i]);       store[de][0] += nos;     }     sort(A + l, A + r + 1);   }   int main() {     cin >> n;     for (int i = 1; i <= (1 << n); i++) cin >> A[i];     gen(n, 1, (1 << n));     for (int de = n; de > 0; de--) INV += store[de][0];     int m;     cin >> m;     while (m--) {       int de;       cin >> de;       while (de != 0) {         INV -= store[de][0];         INV += store[de][1];         swap(store[de][0], store[de][1]);         de--;       }       printf( %lld n , INV);     }     return 0;   }   