func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   void print_array(T a[], int size) {     for (int i = 0; i < size; i++) cout << a[i] <<    ;     cout << endl;   }   template <class T>   void print_array_v(T &a) {     int size = a.size();     for (int i = 0; i < size; i++) cout << a[i] <<    ;     cout << endl;   }   int main() {     long long int i, j, a, b, c, d, one = 0, zero = 0;     cin >> a >> b >> c >> d;     if (a == 0 && b == 0 && c == 0 && d == 0) {       cout <<  0  << endl;       return 0;     }     one = sqrt(d * 2);     if ((one * (one + 1)) == d * 2)       one++;     else       one = -1;     zero = sqrt(a * 2);     if ((zero * (zero + 1)) == 2 * a)       zero++;     else       zero = -1;     if (d == 0 && b == 0 && c == 0) one = 0;     if (a == 0 && b == 0 && c == 0) zero = 0;     bool flag = 0;     if (one == -1 || zero == -1) {       cout <<  Impossible  << endl;       assert(flag == 0);       return 0;     }     string ans;     long long int s = c, zero_rem = zero, one_rem = one;     for (i = 0; i < one + zero; i++) {       if (s >= zero_rem)         s -= zero_rem, ans +=  1 , one_rem--;       else         ans +=  0 , zero_rem--;     }     long long int zero_till = 0, one_till = 0;     long long int zero_zero = 0, zero_one = 0, one_zero = 0, one_one = 0;     for (i = 0; i < one + zero; i++) {       if (ans[i] ==  0 ) {         zero_till++;         zero_zero += zero_till - 1;         one_zero += one_till;       } else if (ans[i] ==  1 ) {         one_till++;         one_one += one_till - 1;         zero_one += zero_till;       } else         assert(1 == 0);     }     if (one_one != d || zero_one != b || one_zero != c || zero_zero != a) {       cout <<  Impossible  << endl;       return 0;     }     if (!ans.size()) {       cout <<  Impossible  << endl;       return 0;     }     if (zero_rem != 0 || one_rem != 0) {       cout <<  Impossible  << endl;       return 0;     } else       flag = 1, cout << ans << endl;     assert(ans.size() <= 1000000);     return 0;   }   