Cod sursa(job #159016)

Utilizator pandaemonAndrei Popescu pandaemon Data 13 martie 2008 22:11:37
Problema Pascal Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<stdio.h>
#include<iostream.h>
#define RMAX 5000001
		       /// f: R / (C*(R-C))
long r,aux,i,j,var;
int d,v[RMAX],sol;

int algoritm()
{
 for(i=1;i<=r;i++)
 {aux=i; var=0;
  while(aux%d==0) {aux/=d; var++;}
 for(j=i;j<=r;j++) v[j]+=var;  }
}


main()
{freopen("pascal.in","r",stdin);
 freopen("pascal.out","w",stdout);

 scanf("%ld %d",&r,&d);

 if(d%2==0)
 for(i=1;i<=r;i++)
 {aux=i; var=0;
 while( (aux&1)==0 ) {aux=(aux>>1); var++;}
 for(j=i;j<=r;j++) v[j]+=var;  }


 else algoritm();


 for(i=0;i<=r;i++)
 {int x=v[r]-v[r-i]-v[i];
  if(x>0) sol++; }

  printf("%d\n",int(sol));   }