#include <stdio.h>
char str[17],strAux[17];
long long int i,length;
void subString(){
char c=str[i];
int j=0; length=0;
while(str[i]==c){
strAux[j]=str[i];
i++; j++; length++;
}
strAux[j]='\0';
}
long long int countOneStr(){
int count=0,num;
i=0;
while(str[i]!='\0'){
subString();
if(strAux[0]!='0'){
num=strAux[0]-48;
count+=num*length*length;
}
}
return count;
}
int main(){
long long int numB,numE,k,cherries=0;
scanf("%lld %lld",&numB,&numE);
for(k=numB;k<=numE;++k){
sprintf(str,"%lld",k);
cherries+=countOneStr();
}
printf("%lld",cherries);
return 0;
}
Any hint??