Cod sursa(job #2685601)

Utilizator Turica_Andrei_CosminTurica Andrei Turica_Andrei_Cosmin Data 17 decembrie 2020 12:39:36
Problema Cifre Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 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;

}