func_code_string: #include <bits/stdc++.h>   #define Mid ((l + r) >> 1)   #define lson (rt << 1)   #define rson (rt << 1 | 1)   using namespace std;   int read(){    char c; int num, f = 1;    while(c = getchar(),!isdigit(c)) if(c ==  - ) f = -1; num = c -  0 ;    while(c = getchar(), isdigit(c)) num = num * 10 + c -  0 ;    return f * num;   }   const int N = 2e5 + 1009;   int a, b, k;   int x[N], y[N];   signed main()   {    a = read(); b = read(); k = read();    if(k == 0) {     printf( Yes n );     for(int i = 1; i <= b; i++) printf( 1 );     for(int i = 1; i <= a; i++) printf( 0 );printf(  n );     for(int i = 1; i <= b; i++) printf( 1 );     for(int i = 1; i <= a; i++) printf( 0 );printf(  n );     return 0;    }    if(a + b < k + 2 || (a > 0 && b == 1) || a == 0) {     printf( No n );     return 0;    }    if(a >= k) {     y[1] = 1;     x[k + 1] = 1;     for(int i = a + 2; i <= a + b; i++)      x[i] = y[i] = 1;    } else {     y[1] = 1;     x[k + 1] = 1;     for(int i = a + 1; i <= k; i++) {      x[i] = y[i] = 1;     }     for(int i = k + 2; i <= a + b; i++)      x[i] = y[i] = 1;    }    reverse(x + 1, x + 1 + a + b);    reverse(y + 1, y + 1 + a + b);    printf( Yes n );    for(int i = 1; i <= a + b; i++) printf( %d , x[i]); printf(  n );    for(int i = 1; i <= a + b; i++) printf( %d , y[i]); printf(  n );    return 0;   }   /*   两个位置都为1   表示这两个位置之间的数都变成1   也就是说只用两个1就可以构造出来了      可以把中间一对0换成1   可以减少0的数量   至少需要2+k   */