rt,样例过了
#include<bits/stdc++.h>
#define int long long
using namespace std;
int dp[15][15],num[15];
int dfs(int pos,int cnt,bool zero,bool lim,int d)
{
if(pos==0)return cnt;
if(!lim&&!zero&&dp[pos][cnt]!=-1)return dp[pos][cnt];
int ans=0;
int mxd=lim?num[pos]:9;
for(int i=0;i<=mxd;++i)
ans+=dfs(pos-1,cnt+((!zero||i)&&(i==d)),lim&&i==mxd,zero&&!i,d);
if(!lim&&!zero)dp[pos][cnt]=ans;
return ans;
}
int solve(int x,int d)
{
int len=0;
while(x)num[++len]=x%10,x/=10;
memset(dp,-1,sizeof(dp));
return dfs(len,0,1,1,d);
}
signed main()
{
int a,b;
cin>>a>>b;
for(int i=0;i<=9;++i)
cout<<solve(b,i)-solve(a-1,i)<<" ";
return 0;
}