求大佬帮忙指点
#include<bits/stdc++.h>
using namespace std;
long long modd=1000000007,ta,tb;
long long ans,a[20],t,x,y;
long long work(long long n)
{
memset(a,0,sizeof(a));
x=y=ans=0;
a[1]=45;
for(long long i=2;i<=19;i++)a[i]=a[i-1]*10+45*pow(10,i-1);
for(long long i=n;i>0;i/=10,x++)
{
t=i%10;
ans=(ans+((a[x]*t)%modd+(((t-1)*t)%modd)/2*((long long)(pow(10,x))%modd)%modd)+(t*y%modd)+t)%modd;
y=((t*((long long)(pow(10,x))%modd)%modd)+y)%modd;
}
return ans;
}
int main()
{
long long T,n,m;
cin>>T;
while(T--)
{
cin>>n>>m;
ta=work(n-1);
tb=work(m);
cout<<(((tb-ta)%modd)+modd)%modd<<endl;
}
return 0;
}