Cod sursa(job #902796)

Utilizator otto1Palaga Vicentiu-Octavian otto1 Data 1 martie 2013 16:47:00
Problema Cifre Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <cstdio>
#include <ctime>
#include <cstring>
#include <cstdlib>
#include <cassert>
using namespace std;

int main() {
    srand(time(0));
    FILE *fin = fopen ("cifre.in", "r");
    FILE *fout = fopen ("cifre.out", "w");
    int a, b, k, c, count = 0, exps, times;
    fscanf (fin, "%d %d %d %d", &a, &b, &c, &k);
    if (b <= 1000000) {
        exps = 710000;
    } else {
        exps = 515000;
    }
    assert(exps <= RAND_MAX);
    times = exps;
    /*int x = a + rand()%(b-a+1);*/
    while (times--) {
        int x = a + rand()%(b-a+1);
        int cc = 0;
    /*  l = strlen(s);
        for (i = 0; i < l; ++i) {
            if (s[i] - '0' == c) {
                cc++;
            }
        }*/


        for (; x; x/=10) {
            if (x % 10 == c) {
                cc++;
            }
        }
        if (cc >= k) {
            count++;
//          printf ("%d\n", copy);
        }
    }
    double ans = (double)count / (double)exps;
    fprintf (fout, "%.4lf", ans);
    fclose(fout);
    return 0;
}