#pragma GCC optimize("Ofast") #pragma GCC target("avx2") char*mmap(); #define MD 1000000007 #define INV2 ((MD+1)/2) #define INV45 822222228 main(){ char*p=mmap(0l,1l<<28,1,2,0,0ll); long a=0,b=45,c=INV45,d=MD-1; int x; while(x=*p++-48,x>=0){ b=b*INV45*x%MD; a+=b*(x-1); c=c*45%MD; d+=c; } printf("%d",((a%MD*INV2+b)%MD*c+d)%MD); }