func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, d1, d2;   bool d[400001];   int a[200001];   int nextprime(int x) {     for (int i = x + 1; i <= 2 * n; ++i)       if (d[i]) return i;     return 2 * n + 1000000;   }   int main() {     ios_base::sync_with_stdio(0);     cin >> n;     int x;     for (int i = 1; i <= n; ++i) {       cin >> x;       d1 += x == 1;       d2 += x == 2;     }     memset(d, sizeof(d), 0);     for (int i = 2; i <= 2 * n; ++i) {       bool f = 1;       for (int j = 2; j * j <= i; ++j)         if (i % j == 0) {           f = 0;           break;         }       d[i] = f;     }     int prime = 0;     int t = n;     while (n > 0) {       int tmp = nextprime(prime);       while (tmp - prime >= 2 && d2 > 0 && n > 0) prime += 2, d2--, a[n] = 2, n--;       while (tmp - prime >= 1 && d1 > 0 && n > 0) prime += 1, d1--, a[n] = 1, n--;       while (tmp - prime >= 1 && d1 == 0 && d2 > 0)         prime += 2, d2--, a[n] = 2, n--;     }     for (int i = t; i > 0; --i) cout << a[i] <<    ;   }   