Cod sursa(job #36013)

Utilizator rurutzairimia ruxandra maria rurutza Data 22 martie 2007 20:45:20
Problema Cifre Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream.h>
ifstream f("cifre.in");
ofstream g("cifre.out");
long n,k,nt=0,c[10],p10[10];
long i,p,pcifra,a,b,nr,nnr;
 int main()
 {
 f>>a>>b>>nr>>k;
 c[0]=0;
 p10[0]=1;
 for(i=1;i<10;i++)
 {
 c[i]=9*c[i-1]+p10[i-1];
 p10[i]=p10[i-1]*10;
 }
 nnr=0;
 for(i=a;i<=b;i++)
 {
 n=i;
 nt=0;
 if(n==k)
 nt++;
 for(p=9;p>=1;p--)
 if(n>=p10[p])
 {
 pcifra=n/p10[p];
 if(pcifra>k)
 {
 nt=nt+p10[p];
 nt=nt+(pcifra-1)*c[p];
 }
 if(pcifra==k)
 {
 nt=nt+pcifra*c[p];
 nt=nt+n%p10[p]+1;
 break;
 }
 if(pcifra<k)
 nt=nt+pcifra*c[p];
 n=n%p10[p];
 }
 if(nt>=nr)
 nnr++;}
 p=b-a+1;
 g<<(float)nnr/p;
 f.close();
 g.close();
return 0;
}