Cod sursa(job #1837774)

Utilizator mihai.alphamihai craciun mihai.alpha Data 30 decembrie 2016 14:18:29
Problema Cifre Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

FILE *fin, *fout;
double prob;
int c, k;
inline bool nr(int n)  {
    int ret;
    ret = 0;
    while(n > 0)  {
        ret += (n % 10 == c);
        n /= 10;
    }
    return ret >= k;
}
#define Q 1000121

int main()  {
    srand(time(0));
    fin = fopen("cifre.in", "r");
    fout = fopen("cifre.out", "w");
    int a, b;
    fscanf(fin, "%d%d%d%d", &a, &b, &c, &k);
    double ans = 0;
    if(b-a+1<=Q){
        int s=0;
        for(int i=a; i<=b; i++)
            s+=nr(i);
        ans=s/(double)(b-a+1);
    }else{
        int s=0;
        for(int i=0; i<Q; i++)
            s+=nr(a+rand()%(b - a + 1));
        ans=s/(double)Q;
    }
    fprintf(fout, "%.4lf", ans);
    fclose(fin);
    fclose(fout);
    return 0;
}