Cod sursa(job #731096)

Utilizator danalex97Dan H Alexandru danalex97 Data 7 aprilie 2012 14:47:31
Problema Cifre Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<cstdio>
#include<fstream>

#define Nbr 10000

using namespace std;
ifstream f("cifre.in");
ofstream g("cifre.out");

int c;
int a,b,k,nr=0,p=0,x;

int cf(int x)
{
    int sol=0;
    for(;x;x/=10)
        if (x%10==c)
            ++sol;
    return sol ;
}

int main ()
{
	f>>a>>b>>c>>k;
    if (b-a>=Nbr)
    {
        for(;a%Nbr;++a,++p)
            if ( cf(a) >=k )
                ++nr;
        for(x=0;b-a>=Nbr;a+=Nbr,p+=Nbr)
        {
            x=cf( a/Nbr );
            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 (cf(a)>=k)
            ++nr;
    g<<(double)nr/p ;
    return 0;
}