为什么我的代码不吸氧就 WA 90 pts?吸氧就 AC 了。
#include<bits/stdc++.h>
#define gt getchar
#define pt putchar
#define y1 y233
#define int long long
typedef long long ll;
//typedef __int128 lll;
typedef unsigned long long ull;
const int MOD=1e9+7;
using namespace std;
inline int read(){
int x=0,f=1;char ch=gt();
while(!isdigit(ch)){if(ch=='-')f=-1;ch=gt();}
while(isdigit(ch)){x=(x<<1)+(x<<3)+(ch^48);ch=gt();}
return x*f;
}
inline void print(int x){
if(x<0)pt('-'),x=-x;
if(x>9)print(x/10);
pt(x%10+48);
}
inline void println(int x){
print(x);
pt(10);
}
int n,T,l,r;
int num[20],cnt,dp[20],p[20];
inline int calc(int x){
memset(dp,0,sizeof(dp));
int ans=0,tmp=0;cnt=0;
while(x)num[++cnt]=x%10,x/=10;
for(int i=cnt;i;--i){
dp[i]=10*dp[i+1]%MOD;
ans=ans+(45*dp[i+1]*p[i-1])%MOD;
for(int j=0;j<num[i];++j){
dp[i]=(dp[i]+1)%MOD;
ans=(ans+((tmp+j)*p[i-1])%MOD)%MOD;
}
tmp+=num[i];
}
ans+=tmp;
return ans;
}
signed main(){
T=read();
while(T--){
l=read(),r=read(),p[0]=1;
for(int i=1;i<20;++i)
p[i]=10*p[i-1]%MOD;
println((calc(r)-calc(l-1)+MOD)%MOD);
}
return 0;
}