```cpp
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const int MAXN(30);
ll a,b;
ll dp[MAXN][10];
int res[MAXN],len;
ll cnt[10][2];
inline void dfs(int pos,bool flag,bool lim)
{
if(pos>len) return;
int rng=lim?res[pos]:9;
for(register int i=0;i<=9;i++)
{
if(!flag||i!=0) ++dp[pos][i];
dp[pos][i]+=dp[pos-1][i];
dfs(pos+1,flag&&i==0,lim&&i==rng);
}
return;
}
inline void solve(ll x,int p)
{
memset(dp,0,sizeof(dp)),len=0;
while(x)
{
res[++len]=x%10;
x/=10;
}
reverse(res+1,res+1+len);
dfs(1,true,true);
for(register int i=0;i<=9;i++) cnt[i][p]=dp[len][i];
return;
}
int main()
{
scanf("%lld%lld",&a,&b);
solve(b,0);
solve(a-1,1);
for(register int i=0;i<=9;i++) printf("%lld ",cnt[i][0]-cnt[i][1]);
puts("");
return 0;
}
```
by UperFicial @ 2022-04-07 14:36:50