#include #include #include int main() { int r = -2; char *nega; char *vysl = malloc(1000000 * sizeof(char)); while(scanf("%ms", &nega) != 0) { int i = 0, j=0; int res = 0; int len = strlen(nega); int pow = len - 1; for (i = 0; i < len; i++) { int tmp = r; for(j = 1; j < pow; j++) { tmp *= r; } if(pow == 0) tmp = 1; pow--; res += (nega[i] - '0') * tmp; } res++; vysl[0] = '0'; len = 0; int mod; while(res != 0) { if(res > 0) { mod = (res % 2 + 2) % 2; res = res / (-2); } else { mod = (res % 2 + 2) % 2; res = res / (-2) + (mod ? 1 : 0); } vysl[len] = mod + '0'; len++; } for(i = len - 1; i >= 0; i--) { printf("%c", vysl[i]); } if(len == 0) printf("0"); printf("\n"); } return 0; }