Cod sursa(job #1466205)

Utilizator killer301Ioan Andrei Nicolae killer301 Data 28 iulie 2015 19:12:07
Problema Cifre Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
#include <ctime>
#include <cstdlib>

using namespace std;

const int Max = 2000000;

int c, k;

bool check(int x)
{
	int nr = 0;
	do
	{
		if(x%10 == c)nr++;
		x/=10;
	}
	while(x);
	return nr >= k;
}

int main()
{
    freopen("cifre.in", "r", stdin);
    freopen("cifre.out", "w", stdout);
    int a, b;
    scanf("%d%d%d%d", &a, &b, &c, &k);
    int ans = 0;
	if(b-a < Max)
	{
		for(int i=a; i<=b; i++)
			if(check(i))
				ans++;
		printf("%.4lf\n", 1.0*ans/(b-a+1));
	}
	else if(b-a >= Max)
	{
		for(int i=0; i<Max; i++)
			if(check(rand()%(b-a+1)+a))
				ans++;
		printf("%.4lf\n", 1.0 * ans/Max);
	}
    return 0;
}