云盘
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<math.h>
#include<algorithm>
using namespace std;
int dp[12][10];
int m;
void init()
{
memset(dp,0,sizeof(dp));
for(int i=0;i<=9;i++){
dp[1][i]=1;
}
for(int i=2;i<=11;i++){
for(int j=0;j<=9;j++){
for(int k=0;k<=9;k++){
if(abs(j-k)>=m)
dp[i][j]+=dp[i-1][k];
}
printf("a[i]==%d\n",dp[i][j]);
}
}
}
int solve(int n){
int c[20];
int len=0;
while(n){
c[++len]=n%10;
n/=10;
}
int ans=0;
for(int i=len;i>=1;i--){
for(int j)
for(int j=0;j<=9;j++){
if(abs(c[i]-j)>=m)
ans+=dp[i-1][j];
}
}
return ans;
}
int main()
{
int t,l,r;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&l,&r,&m);
init();
int r1=solve(r);
int l1=solve(l-1);
printf("%d %d\n",l1,r1);
int ans=r1-l1;
printf("%d\n",ans);
}
}