func_code_string: #include <bits/stdc++.h>   using namespace std;   int val[60];   int n;   int grid[2][60];   int mask1[25][1200008 + 1], mask2[25][1200008 + 1];   void solve(int l, int r, int mask[][1200008 + 1]) {     memset(mask, -1, sizeof mask);     for (int i = 0; i <= 24; i++)       for (int j = 0; j < 1200008 + 1; j++) mask[i][j] = -1;     for (int i = 0; i < (1 << r - l); i++) {       int s = 0;       for (int j = 0; j < r - l; j++)         if ((1 << j) & i) s += val[j + l];       mask[__builtin_popcount(i)][s] = i;     }   }   signed main() {     scanf( %d , &n);     n = n * 2;     for (int i = 0; i < n; i++) scanf( %d , &val[i]);     sort(val, val + n);     int sum = 0;     int base = val[0] + val[1];     grid[0][0] = val[0], grid[1][n / 2 - 1] = val[1];     n -= 2;     for (int i = 0; i < n; i++) val[i] = val[i + 2], sum += val[i];     solve(0, n / 2, mask1);     solve(n / 2, n, mask2);     int ans = 1e9;     long long ansmask = 0;     for (int a = 0; a <= n / 2; a++) {       int b = n / 2 - a;       int j = 1200008;       while (j >= 0 and mask2[b][j] == -1) j--;       for (int i = 0; j >= 0 and i <= 1200008; i++)         if (mask1[a][i] > -1) {           while (j >= 0 and (j + i) * 2 > sum) j--;           while (j >= 0 and mask2[b][j] == -1) j--;           if (j < 0) break;           if (sum - (i + j) * 2 < ans) {             ans = sum - (i + j) * 2;             ansmask = (1ll * mask2[b][j]) << (n / 2);             ansmask += mask1[a][i];           }         }     }     ans = (sum + ans) / 2;     vector<int> v1, v2;     for (int i = 0; i < n; i++)       if ((1ll << i) & ansmask)         v1.push_back(val[i]);       else         v2.push_back(val[i]);     sort(v1.begin(), v1.end());     sort(v2.begin(), v2.end());     reverse(v2.begin(), v2.end());     n += 2;     for (int i = 1; i < n / 2; i++) grid[0][i] = v1[i - 1];     for (int i = 0; i < n / 2 - 1; i++) grid[1][i] = v2[i];     for (int i = 0; i < 2; i++) {       for (int j = 0; j < n / 2; j++) cout << grid[i][j] <<    ;       cout <<   n ;     }     return 0;   }   