Cod sursa(job #1723750)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 1 iulie 2016 14:54:08
Problema Cifre Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<cstdio>
#include<cstdlib>
#include<ctime>
using namespace std;
int a,b,c,k;
int Digits(int x){
    int answer=0;
    while(x>0){
        if(x%10==c)
            answer++;
        x/=10;
    }
    return answer;
}
double SolveBrute(){
    int answer=0,i;
    for(i=a;i<=b;i++)
        if(Digits(i)>=k)
            answer++;
    return 1.0*answer/(b-a+1);
}
double SolveRandom(){
    int answer=0,i;
    for(i=1;i<=1000000;i++)
        if(Digits(a+rand()%(b-a+1))>=k)
            answer++;
    return 1.0*answer/1000000;
}
int main(){
    freopen("cifre.in","r",stdin);
    freopen("cifre.out","w",stdout);
    scanf("%d%d%d%d",&a,&b,&c,&k);
    srand(time(0));
    if(b-a<=100000)
        printf("%.4f",SolveBrute());
    else
        printf("%.4f",SolveRandom());
    return 0;
}