rt,悬关
#include <iostream>
#include <cstdio>
#define int long long
using namespace std;
int l,r,a[10],b[10],num[21],nw[21],len,ll,rr;
int dp[21][10];
int qp( int x , int y )
{
int c = 1;
while( y )
{
if( y & 1 ) c = c * y;
y >>= 1;
x = x * x;
}
return c;
}
int dfs( int siz , int lim , int zero , int dig )
{
if( siz == 0 ) return 0;
if( !lim && !zero && dp[siz][dig] ) return dp[siz][dig];
int sum = 0;
for( int i = 0 ; i <= ( lim ? num[siz] : 9 ) ; i ++ )
{
int z = ( zero && i == 0 ),l = ( lim && i == num[siz] );
if( !z && i == dig )
{
if( l )
{
int cnt = 0;
for( int i = siz - 1 ; i >= 1 ; i -- )
cnt = cnt * 10 + num[i];
sum += cnt;
}
else
{
int cnt = 1;
for( int i = siz - 1 ; i >= 1 ; i -- )
cnt = cnt * 10;
sum += cnt;
}
}
sum += dfs( siz - 1 , l , z , dig );
}
dp[siz][dig] = sum;
return dp[siz][dig];
}
void solve( void )
{
ll = l;
while( l )
{
num[++ len] = l % 10;
l /= 10;
}
l = ll;
for( int i = 0 ; i <= 9 ; i ++ )
a[i] = dfs( len , 1 , 1 , i );
r ++;
rr = r;
len = 0;
while( r )
{
num[++ len] = r % 10;
r /= 10;
}
r = rr;
for( int i = 0 ; i <= 9 ; i ++ )
b[i] = dfs( len , 1 , 1 , i );
// while( l )
// {
// b[l % 10] ++;
// l /= 10;
// }
for( int i = 0 ; i <= 9 ; i ++ )
cout << b[i] - a[i] << ' ';
return;
}
signed main()
{
cin >> l >> r;
solve();
return 0;
}