func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   void rd(T &k) {     char c = getchar();     int f = 1;     k = 0;     while (c <  0  || c >  9 ) {       if (c ==  - ) f *= -1;       c = getchar();     }     while (c >=  0  && c <=  9 ) {       k = k * 10 + c -  0 ;       c = getchar();     }     k *= f;   }   const int N = 2200;   int n, m, k, s, t;   char c[5005];   int f[N][1 << 12], sum[N];   int g[1 << 12];   int main() {     cin >> c + 1;     n = strlen(c + 1);     for (k = 0, s = 1; s <= n; ++k, s <<= 1)       ;     --k;     m = n + 1 - (1 << k);     f[0][0] = 1;     for (register int i = 1; i <= m; ++i) {       char mx =  z ;       memset(g, 0, sizeof(g));       for (register int j = 0; j < (1 << k); ++j) {         if (f[i - 1][j]) g[j] = 1;         for (register int p = 0; p < k; ++p)           if ((j & (1 << p)) && g[j ^ (1 << p)]) g[j] = 1;         if (g[j]) mx = min(mx, c[i + j]);       }       cout << mx;       for (register int j = 0; j < (1 << k); ++j)         if (g[j] && c[j + i] == mx) f[i][j] = 1;     }   }   