Cod sursa(job #15232)

Utilizator anamaria1Ozorchevici Ana Maria anamaria1 Data 11 februarie 2007 12:34:11
Problema Pascal Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<fstream.h>
unsigned long ras;
int main()
{ifstream f("pascal.in");
ofstream g("pascal.out");
unsigned long r,val,n1,n2,d,i,l,j;
f>>r>>d;f.close();
if((r==0)||(r==1)) {g<<0<<'\n';g.close();return 0;}
val=0;
for(i=d;i<=r;i=i*d) val=val+r/i;
if(r%2)
 {l=r/2;
  for(i=0;i<=l;i++)
   {n1=i;
    if(n1==0) n1=1;
    n2=0;
    for(j=d;j<=n1;j=j*d) n2=n2+n1/j;
    n1=r-i;
    if(n1==0) n1=1;
    for(j=d;j<=n1;j=j*d) n2=n2+n1/j;
    if((val-n2)>0) ras++;
   }
  ras=ras*2;g<<ras<<'\n';g.close();return 0;
 }
 else
  {l=r/2;
   for(i=0;i<l;i++)
    {n1=i;
     if(n1==0) n1=1;
     n2=0;
     for(j=d;j<=n1;j=j*d) n2=n2+n1/j;
     n1=r-i;
     if(n1==0) n1=1;
     for(j=d;j<=n1;j=j*d) n2=n2+n1/j;
     if((val-n2)>0) ras++;
    }
   ras=ras*2;
   n1=l;
   if(n1==0) n1=1;
   n2=0;
   for(j=d;j<=n1;j=j*d) n2=n2+n1/j;
   n1=r-l;
   if(n1==0) n1=1;
   for(j=d;j<=n1;j=j*d) n2=n2+n1/j;
   if((val-n2)>0) ras++;
   g<<ras<<'\n';g.close();return 0;
  }
}