#include #include #include long long int mocnina(long long int n){ long long int mocnica; if(n==0 || n%2==0){ mocnica=1; }else{ mocnica=-1; } long long int i; for(i = 0; i < n; i++){ mocnica=mocnica*2; } return mocnica; } void skonvertuj (char *s){ long long int pom=0; long long int i; for(i=strlen(s)-1;i>=0;i--){ pom=pom+((s[i]-48)*mocnina(strlen(s)-1-i)); } pom++; /*printf("%d\n",pom);*/ long long int x; char *c=(char*)malloc(sizeof(char)*2); char *pomstring=(char*)malloc(sizeof(char)); /*printf("cislo:%d\n",pom);*/ while(pom!=0){ if(pom%(-2)==-1){ pom=(pom/(-2))+1; x=1; }else{ x=pom%2; pom=pom/(-2); } c[0]=x+48; pomstring=strcat(pomstring,c); } for(i=strlen(pomstring);i>=0;i--){ printf("%c",pomstring[i]); } free((void*)pomstring); } int main() { char *s=(char*)malloc(sizeof(char)*10^6); while(gets(s)!=NULL){ skonvertuj(s); /*printf("%s\n",pom);*/ printf("\n"); free((void*)s); s=(char*)malloc(sizeof(char)*10^6); /*free((void*)pom);*/ } return 0; }