Cod sursa(job #1071901)

Utilizator chiriacandrei25Chiriac Andrei chiriacandrei25 Data 3 ianuarie 2014 17:30:07
Problema Cifre Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>
#include <cstdlib>
#include <ctime>

using namespace std;

int maxRand=600000,nr,A,B,C,K;;

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

int main()
{
    double sol;
    int i,val;
    freopen ("cifre.in","r",stdin);
    freopen ("cifre.out","w",stdout);
    scanf("%d%d%d%d", &A,&B,&C,&K);
    if(B-A+1<=maxRand)
    {
        for(i=A;i<=B;++i)
            if(Ok(i))
                ++nr;
    }
    else
    {
        srand(time(NULL));
        while(maxRand--)
        {
            val=(rand()%(B-A+1)+A);
            if(Ok(val))
                ++nr;
        }
    }
    sol=nr/(1.0*(B-A+1));
    printf("%.4lf\n", sol);
    return 0;
}