Cod sursa(job #1460172)

Utilizator robertstrecheStreche Robert robertstreche Data 11 iulie 2015 18:40:34
Problema Cifre Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
#include <bits/stdc++.h>

#define NRMAX 2000000

using namespace std;

int a,b,numar,cif,nrfav;

inline int cifre(int n)
{
    int nr=0;
    for (;n;n/=10)
      nr+=(n%10==cif);

   return nr;
}
int main()
{
   freopen("cifre.in","r",stdin);
   freopen("cifre.out","w",stdout);

   scanf("%d %d %d %d",&a,&b,&cif,&numar);

   if (b-a<NRMAX/5)
   {
       for (int i=a;i<=b;i++)
        if (cifre(i)>=numar)nrfav++;

       printf("%.4f",1.0*nrfav/(b-a+1));
       return 0;
   }
   for (int i=1;i<=NRMAX;i++)
    if(cifre(rand()%(b-a+1)+a)>=numar)nrfav++;

   printf("%.4f",1.0*nrfav/NRMAX);

   fclose(stdin);
   fclose(stdout);
}