Cod sursa(job #17892)

Utilizator anamaria1Ozorchevici Ana Maria anamaria1 Data 17 februarie 2007 12:06:39
Problema Pascal Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.83 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,c1,c2;
f>>r>>d;f.close();
if((r==0)||(r==1)) {g<<0<<'\n';g.close();return 0;}
val=0;
if(d==6) d=3;
if(d==4) {for(i=2;i<=r;i=i*2) val=val+r/i;
	  //c1=val%2;
	  //val=val/2;
	 }
 else for(i=d;i<=r;i=i*d) val=val+r/i;
if(r%2)
 {l=r/2;
  for(i=0;i<=l;i++)
   {n2=0;n1=i;
    if(d==4)
     {if(n1) for(j=2;j<=n1;j=j*2) n2=n2+n1/j;
      n1=r-i;
      if(n1) for(j=2;j<=n1;j=j*2) n2=n2+n1/j;
      //c2=n2%2;n2=n2/2;
      //if(((c1-c2)==0)&&((val-n2)>=1)) ras++;
       //else if((val-n2)>=2) ras++;
      if((val-n2)>=2) ras++;
     }
     else
      {if(n1) for(j=d;j<=n1;j=j*d) n2=n2+n1/j;
       n1=r-i;
       if(n1) 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++)
    {n2=0;n1=i;
     if(d==4)
       {if(n1) for(j=2;j<=n1;j=j*2) n2=n2+n1/j;
	n1=r-i;
	if(n1) for(j=2;j<=n1;j=j*2) n2=n2+n1/j;
	//c2=n2%2;n2=n2/2;
	//if(((c1-c2)==0)&&((val-n2)>=1)) ras++;
	 //else if((val-n2)>=2) ras++;
	if((val-n2)>=2) ras++;
       }
      else
       {if(n1) for(j=d;j<=n1;j=j*d) n2=n2+n1/j;
	n1=r-i;
	if(n1) for(j=d;j<=n1;j=j*d) n2=n2+n1/j;
	if((val-n2)>0) ras++;
       }
    }
   ras=ras*2;n1=l;n2=0;
   if(d==4)
     {if(n1) for(j=2;j<=n1;j=j*2) n2=n2+n1/j;
      n1=r-l;
      if(n1) for(j=2;j<=n1;j=j*2)
		n2=n2+n1/j;
      //c2=n2%2;n2=n2/2;
      //if(((c2-c1)==0)&&((val-n2)>=1)) ras++;
       //else if((val-n2)>=2) ras++;
      if((val-n2)>=2) ras++;
     }
     else
      {if(n1) for(j=d;j<=n1;j=j*d) n2=n2+n1/j;
       n1=r-l;
       if(n1) for(j=d;j<=n1;j=j*d) n2=n2+n1/j;
       if((val-n2)>0) ras++;
      }
   g<<ras<<'\n';g.close();return 0;
  }
}