#include #include #include #include #define R 10 #define L 8 typedef long long unsigned int BI; BI mr = 1; typedef unsigned char uc; typedef struct{uc d[L];} num; uc md(uc n){return n= R):ci);} *co = a.d[L-1]>=R; return A;} num ad(num a, num b){uc c; return adc(a, b, 0, &c);} int main(){{double v = 1; {int j=L; while(j--) {mr *= R; v *= R;}} assert(mr < 1.1*v);} if(0){num q = in("6700417"); pr(q, "q"); printf("val = %lld\n", val(q)); {num v = in("999"); {num t = ad(v, v); pr(t, "ad"); printf("v = %lld\n", val(t));}}} {num ac = in("0"); BI acb = 0; uc c; int cs=0; {int j = 1000000; while(j--) {num n = rn(); ac = adc(ac, n, 0, &c); acb += val(n); cs += c;} printf("val = %lld, bin = %lld cs=%d\n", val(ac), acb, cs); assert(val(ac) + mr*cs == acb);}} return 0;}