Cod sursa(job #2675591)

Utilizator claudiaECiontu Claudia claudiaE Data 22 noiembrie 2020 01:11:27
Problema Cifre Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<fstream>
#include<iostream>
#include<iomanip>
using namespace std;
int cifre(int n,int C)
{
	int aparitie = 0;
	while (n)
	{
		if (n % 10 == C)
		{
			aparitie++;
		}
		n /= 10;
	}
	return aparitie;
}
int main()
{
	long long A, B, C, K, x, p=0, n, nr=0;
	ifstream fin("cifre.in");
	ofstream fout("cifre.out");
	fin >> A >> B >> C>> K;
	if (B - A >= 10000)
	{
		while (A % 10000)
		{
			if (cifre(A,C) >= K)
			{
				nr++;
			}
			A++;
			p++;
		}
		for (x = 0; B - A >= 10000; A += 10000,p += 10000)
		{
			x = cifre(A / 10000,C);
			if (x >= K)
			{
				nr += 6561;
			}
			if (x >= K- 1)
			{
				nr += 2916;
			}
			if (x >= K - 2)
			{
				nr += 487;
			}
			if (x >= K - 3)
			{
				nr += 35;
			}
			if (x >= K - 4)
			{
				nr++;
			}

		}

	}
	while (A <= B)
	{
		if (cifre(A,C) >= K)
		{
			nr++;
		}
		A++;
		p++;

	}
	fout << fixed << setprecision(4)<< (double)nr / p;

	return 0;
}