func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, a[44], b[44], PP[44], PPP[44], PHI[44];   long long dp[1 << 22], DP[1 << 22];   pair<int, int> P[44];   void is_ok() {     dp[0] = 0;     DP[0] = 0;     int st = 0;     for (int i = 0; i < n; ++i) {       int dr = st + (1 << i);       while (st < dr) {         ++st;         dp[st] = dp[st - (1 << i)] + a[i + 1];         DP[st] = DP[st - (1 << i)] + b[i + 1];         if (dp[st] == DP[st] && st != (1 << n) - 1) return;       }     }     for (int i = 1; i <= n; ++i) cout << b[i] <<    ;     exit(0);   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cin >> n;     for (int i = 1; i <= n; ++i) {       cin >> a[i];       P[i] = make_pair(a[i], i);     }     sort(P + 1, P + n + 1);     P[n + 1] = P[1];     for (int i = 2; i <= n + 1; ++i) PHI[P[i].second] = PP[P[i].second] = i - 1;     for (int t = 1; t <= n; ++t) {       for (int i = 1; i <= n; ++i) b[i] = P[PP[i]].first;       is_ok();       for (int i = 1; i <= n; ++i) PPP[i] = PP[PHI[i]];       for (int i = 1; i <= n; ++i) PP[i] = PPP[i];     }     cout << -1;     return 0;   }   