#include #include #define cf 44 typedef unsigned long long tfn; tfn f[cf+1]; char p1[cf+1]; char p2[cf+1]; char ps[cf+1]; int i,j,k,l; tfn c1,c2,c; int preved(tfn c,char *p){ int i,j; i=cf;j=0; while(f[i]>c && i>0){ i--; } i++; while(i--){ /* printf("i==%d, f[i]==%lld, c==%lld\n",i,f[i],c);*/ if(c>=f[i]){c-=f[i];p[j++]='1';} else p[j++]='0'; } return j; } int main(void){ f[0]=1; f[1]=2; for(i=2;i<=cf;i++)f[i]=f[i-1]+f[i-2]; while(1){ /*printf("zh\n");*/ i=0; while(1){ c=getchar(); /*printf("zh2 %d\n",c);*/ if(c==' ')break; if(c=='\n' || c==EOF)return 0; /*printf("zh2.5\n");*/ /* if(i>40)return 1;*/ ps[i]=c;i++; } /* printf("zh3\n");*/ j=0; c1=0; while(i--){ if(ps[i]=='1')c1+=f[j]; /* printf("i==%d, j==%d, p[i]==%c, f[j]==%d\n", i,j,p[i],f[j]);*/ j++; } /* printf("c1==%d\n",c1);*/ i=0; while(1){ c=getchar(); if(c=='\n')break; ps[i]=c;i++; } j=0; c2=0; while(i--){ if(ps[i]=='1')c2+=f[j]; j++; } c=c1+c2; j=preved(c,ps); l=preved(c1,p1); k=j-l+2; while(k--)putchar(' '); k=0; while(l--)putchar(p1[k++]); printf("\n+ "); l=preved(c2,p2); k=j-l; while(k--)putchar(' '); while(l--)putchar(p2[++k]); printf("\n "); for(i=0;i