Cod sursa(job #517308)
#include <cstdio>
#include <cstdlib>
#include <ctime>
#define file_in "cifre.in"
#define file_out "cifre.out"
int A,B,C,K,Q,X,ans,nr;
int cif(int x)
{
int cf=0;
while(x){
if(x%10==C)
cf++;
x/=10;
}
return cf;
}
int main(){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d %d %d", &A, &B, &C, &K);
nr=0;
if (A-B<=1000000){
for (int i=A;i<=B;++i)
if(cif(i)>=K)
nr++;
double rez=(double)nr/(B-A+1);
printf("%.4lf\n",rez);
return 0;
}
srand(time(NULL));
Q=500000;
ans=0;
while(Q--){
nr=0;
X=A+rand()%(B-A+1);
while(X){
if (X%10==C)
nr++;
X/=10;
}
if (K<=nr)
ans++;
}
double rez=(double)(ans/50);
printf("%.4lf\n", (rez/10000));
return 0;
}