Cod sursa(job #1484342)

Utilizator vladrochianVlad Rochian vladrochian Data 10 septembrie 2015 21:12:29
Problema Cifre Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <iomanip>
#include <ctime>
#include <cstdlib>
using namespace std;

const int kMaxOp = 1000000;

ifstream fin("cifre.in");
ofstream fout("cifre.out");

int A, B, C, K, dif, cnt;
double ans;

bool Check(int x) {
  int cnt = 0;
  do {
    cnt += (x % 10 == C);
    x /= 10;
  } while (x);
  return cnt >= K;
}

int main() {
  fin >> A >> B >> C >> K;
  dif = B - A + 1;
  if (dif <= kMaxOp) {
    for (int i = A; i <= B; ++i)
      cnt += Check(i);
    ans = double(cnt) / dif;
  } else {
    srand(time(0));
    for (int i = 0; i < kMaxOp; ++i)
      cnt += Check(rand() % dif + A);
    ans = double(cnt) / kMaxOp;
  }
  fout << setprecision(4) << fixed << ans << "\n";
  return 0;
}