func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long int mod = 1000000007;   int main() {     ios::sync_with_stdio(0);     int n;     cin >> n;     long long int a[10000], sum[10000], all[10000], m[10000];     memset(all, 0, sizeof(all));     for (int i = 2; i < pow(2, n + 1); i++) {       cin >> a[i];     }     m[1] = sum[1] = 0;     for (int i = 2; i < pow(2, n + 1); i++) {       m[i] = sum[i] = sum[i / 2] + a[i];     }     long long int fin[10000];     fin[1] = sum[(int)pow(2, n)];     for (int i = pow(2, n); i < pow(2, n + 1); i++) {       fin[1] = max(fin[1], sum[i]);     }     for (int i = pow(2, n) - 1; i >= 1; i--) {       m[i] = max(m[2 * i], m[2 * i + 1]);     }     long long int ans = 0;     for (int i = 1; i < pow(2, n); i++) {       all[2 * i] = all[2 * i + 1] = all[i];       if (m[2 * i] + all[i] < fin[1]) {         ans += (fin[1] - all[i] - m[2 * i]);         all[2 * i] = all[i] + fin[1] - all[i] - m[2 * i];       }       if (m[2 * i + 1] + all[i] < fin[1]) {         ans += (fin[1] - all[i] - m[2 * i + 1]);         all[2 * i + 1] = all[i] + fin[1] - all[i] - m[2 * i + 1];       }       cerr <<  i             <<  :   << i <<   |              <<  ans             <<  :   << ans << endl;       ;     }     cout << ans << endl;   }   