Cod sursa(job #1150195)

Utilizator PatrikStepan Patrik Patrik Data 22 martie 2014 17:36:42
Problema Cifre Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
    #include<cstdio>
    #include<cstdlib>
    #include<ctime>
    using namespace std;
    #define MAX 800000
    int A , B ,C ,  K  , cf;

    bool inline verif(int x)
    {
        int k = 0;
        while(x)
        {
            if(x%10 == C)k++;
            x/=10;
        }
        return k >= K;
    }

    int main()
    {
        freopen("cifre.in" , "r" , stdin );
        freopen("cifre.out" , "w" , stdout );
        scanf("%d%d%d%d" , &A , &B , &C , &K );
        if(B - A+1 < MAX)
        {
            for(int i = A ; i <= B ; ++i )
                if(verif(i))cf++;
            printf("%.4f" , (float)cf/(B-A+1));
        }
        else
        {
            srand(time(NULL));
            int dim = (B-A)/100;
            int i = A+dim;
            while(i <= B)
            {
                for(int j = 1 ; j <= MAX/100 ; ++j )
                {
                    int x = rand()%(i-A) + A;
                    if(verif(x))cf++;
                }
                i+=dim;
            }
            printf("%.4f" , (float)cf/MAX);
        }
        return 0;
    }