func_code_string: #include <bits/stdc++.h>   using namespace std;   int main() {     int a, b, c, d;     cin >> a >> b >> c >> d;     int pa = a, pb = b, pc = c, pd = d;     a = pa;     b = pb;     c = pc;     d = pd;     vector<int> ans;     if (a > 0) {       ans.push_back(0);       a--;       while (a + b + c + d != 0) {         if (ans.back() == 0) {           if (b != 0) {             b--;             ans.push_back(1);           } else {             break;           }         } else if (ans.back() == 1) {           if (a != 0) {             ans.push_back(0);             a--;           } else if (c != 0) {             ans.push_back(2);             c--;           } else {             break;           }         } else if (ans.back() == 2) {           if (d != 0) {             ans.push_back(3);             d--;           } else if (b != 0) {             ans.push_back(1);             b--;           } else {             break;           }         } else {           if (c != 0) {             ans.push_back(2);             c--;           } else {             break;           }         }       }       if (a + b + c + d == 0) {         cout <<  YES  << endl;         for (int i = 0; i < ans.size(); i++) {           cout << ans[i] <<    ;         }         return 0;       }     }     ans.resize(0);     a = pa;     b = pb;     c = pc;     d = pd;     if (b >= 1) {       ans.push_back(1);       b--;       while (a + b + c + d != 0) {         if (ans.back() == 0) {           if (b != 0) {             b--;             ans.push_back(1);           } else {             break;           }         } else if (ans.back() == 1) {           if (a != 0) {             ans.push_back(0);             a--;           } else if (c != 0) {             ans.push_back(2);             c--;           } else {             break;           }         } else if (ans.back() == 2) {           if (d != 0) {             ans.push_back(3);             d--;           } else if (b != 0) {             ans.push_back(1);             b--;           } else {             break;           }         } else {           if (c != 0) {             ans.push_back(2);             c--;           } else {             break;           }         }       }       if (a + b + c + d == 0) {         cout <<  YES  << endl;         for (int i = 0; i < ans.size(); i++) {           cout << ans[i] <<    ;         }         return 0;       }     }     a = pa;     b = pb;     c = pc;     d = pd;     ans.resize(0);     if (c >= 1) {       ans.push_back(2);       c--;       while (a + b + c + d != 0) {         if (ans.back() == 0) {           if (b != 0) {             b--;             ans.push_back(1);           } else {             break;           }         } else if (ans.back() == 1) {           if (a != 0) {             ans.push_back(0);             a--;           } else if (c != 0) {             ans.push_back(2);             c--;           } else {             break;           }         } else if (ans.back() == 2) {           if (d != 0) {             ans.push_back(3);             d--;           } else if (b != 0) {             ans.push_back(1);             b--;           } else {             break;           }         } else {           if (c != 0) {             ans.push_back(2);             c--;           } else {             break;           }         }       }       if (a + b + c + d == 0) {         cout <<  YES  << endl;         for (int i = 0; i < ans.size(); i++) {           cout << ans[i] <<    ;         }         return 0;       }     }     a = pa;     b = pb;     c = pc;     d = pd;     ans.resize(0);     if (d >= 1) {       ans.push_back(3);       d--;       while (a + b + c + d != 0) {         if (ans.back() == 0) {           if (b != 0) {             b--;             ans.push_back(1);           } else {             break;           }         } else if (ans.back() == 1) {           if (a != 0) {             ans.push_back(0);             a--;           } else if (c != 0) {             ans.push_back(2);             c--;           } else {             break;           }         } else if (ans.back() == 2) {           if (d != 0) {             ans.push_back(3);             d--;           } else if (b != 0) {             ans.push_back(1);             b--;           } else {             break;           }         } else {           if (c != 0) {             ans.push_back(2);             c--;           } else {             break;           }         }       }       if (a + b + c + d == 0) {         cout <<  YES  << endl;         for (int i = 0; i < ans.size(); i++) {           cout << ans[i] <<    ;         }         return 0;       }     }     cout <<  NO ;     return 0;   }   