2013年11月27日 星期三

TIOJ 1011 Edit Distance In Numbers

[IMPLEMENT]



#include<stdio.h>
#include<stdlib.h>
#define LL unsigned long long int
#define min(a,b) (((a)>(b)) ?  (b):(a))
int dcret(LL I,bool aa[40])
{
    int lx;
    for(lx=0;I;I>>=1,lx++)
        aa[lx]=I&1;
    return lx;
}
int main()
{
    LL a,b;
    while(scanf("%I64u %I64u",&a,&b)==2)
    {
        bool aa[40],bb[40];
        int alen,blen,cc;
        int lx;
        alen=dcret(a,aa);
        blen=dcret(b,bb);
        cc=min(alen,blen);
        for(lx=0;lx<cc;lx++)
            if(aa[alen-lx-1]^bb[blen-lx-1])break;
        printf("%d\n",alen+blen-2*lx);
    }
    return 0;
}

沒有留言:

張貼留言