Cod sursa(job #786300)
#include<fstream>
#define NR 10000
using namespace std;
ifstream f("cifre.in");
ofstream g("cifre.out");
long long x,p,n,a,b,k,c;
long long nr;
int cifre(int n)
{
int nr=0;
for(;n;n/=10)
if(n%10==c)
++nr;
return nr;
}
int main()
{
f>>a>>b>>c>>k;
if(b-a>=NR)
{
for(;a%NR;++a,p++)
{
if(cifre(a)>=k)
++nr;
}
for(x=0;b-a>=NR;a+=NR,p+=NR)
{
x=cifre(a/NR);
if(x>=k)
nr+=6561;
if(x>=k-1)
nr+=2916;
if(x>=k-2)
nr+=487;
if(x>=k-3)
nr+=35;
if(x>=k-4)
++nr;
}
}
for(;a<=b;++a,++p)
if(cifre(a)>=k)
++nr;
g<<(double)nr/p;
return 0;
}