不开O2优化AC,开了却变RE
开了O2
不开O2
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a,b;
const ll N=15;
ll dp[N],ten[N],cnta[N],cntb[N],num[N];
void init(){
ten[0]=1;
for(ll i=1;i<=N;i++){
dp[i]=i*ten[i-1];
ten[i]=ten[i-1]*10;
}
}
void solve(ll x,ll *cnt){
ll len=0;
while(x){
num[++len]=x%10;
x/=10;
}
for(ll i=len;i>=1;i--){
for(ll j=0;j<=9;j++) cnt[j]+=dp[i-1]*num[i];
for(ll j=0;j<num[i];j++) {
cnt[j]+=ten[i-1];
}
ll num2=0;
for(ll j=i-1;j>=1;j--){
num2=num2*10+num[j];
}
cnt[num[i]]+=num2+1;
cnt[0]-=ten[i-1];
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>a>>b;
init();
solve(a-1,cnta);
solve(b,cntb);
for(ll i=0;i<=9;i++){
cout<<cntb[i]-cnta[i]<<" ";
}
return 0;
}