Files

22 lines
801 B
C

int main(){
uint32_t f=0,i,n=0,
a=1732584193,b=4023233417
,q=32,c=~a,d=~b,x,h[]={x=a,b,
c,d,80200,745,108189,38200},s[16]
;int64_t z=0,g=0,l=566548,m=64336,o
=882346,p=585873,e,k,y;for(;!f;)if(s[
n++/4]=x=x>>8|(z<0?0:(z=getchar())>=0?g
+=8,z:128)<<24,n==56?s[s[14]=g,15]=g>>q
,f=z<0:n/64){for(e=i=0,k=~e<<40;i<64;i++,
a=d,d=c,c=b,b+=x<<n|x>>(q-n))y=((e*m+k*p)
>>21)+e*l+k*o,k=(((k*m-e*p)>>21)+k*l-e*o)
>>20,e=y>>20,x=i/16+4,n=h[x],x=a+(x>4?(
x>6?~d|b:x>5?b^d:(b^c)&d)^c:((c^d)&b)^d
)+s[(n/8%8*i+n%8)&15]+(e>>8^e>>40),n=
(n>>(i%4*3+6)&7)+i%4*6+2;d=h[c=h[b=
h[a=h[n=0]+=a,1]+=b,2]+=c,3]+=d;}
for(;n<33;)a=h[n/8]>>(n%8*4^4
)&15,putchar(++n>q?'\n':a
+(a<10?'0':'a'-10))
;return 0;}