Cod sursa(job #1470204)

Utilizator akaprosAna Kapros akapros Data 10 august 2015 15:44:30
Problema Cifre Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <ctime>
#include <cstdlib>
#define Dmax 1000000
using namespace std;
int n, i, j, k, c, a, b, sol;
void sol1();
void sol2();
int nrd(int x)
{
    int nr = 0;
    do
    {
        nr += ((x % 10) == c);
        x /= 10;
    }while (x);

    return nr;
}
void read()
{
    freopen("cifre.in", "r", stdin);
    scanf("%d %d %d %d", &a, &b, &c, &k);
    if (b - a < Dmax)
        sol1();
    else sol2();
}
void sol1()
{
    for (i = a; i <= b; ++ i)
        if (nrd(i) >= k)
           ++ sol;
}
void sol2()
{
     srand(time(NULL));
     for(i = 0; i < Dmax; ++ i)
        if (nrd(rand() % (b - a + 1) + a) >= k)
            ++ sol;
}
void write()
{
    freopen("cifre.out", "w", stdout);
    if (b - a < Dmax)
        printf("%.4lf", 1.0 * sol / (b - a + 1));
    else
        printf("%.4lf", 1.0 * sol / Dmax);
}
int main()
{
    read();
    write();
    return 0;
}