Cod sursa(job #1466196)

Utilizator killer301Ioan Andrei Nicolae killer301 Data 28 iulie 2015 19:04:30
Problema Cifre Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <cstdio>

using namespace std;

const int Max = 1000000;

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=a; i<b; i+=1001)
			if(check(i))
				ans++;
		printf("%.4lf", 1.0*ans/((b-a)/1001.0));
	}
    return 0;
}