Cod sursa(job #5116)

Utilizator razvanbrBratfalean Razvan razvanbr Data 10 ianuarie 2007 18:40:40
Problema Pascal Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<stdio.h>
int r,d,contor,c,a1,a2,a3,s,b1,b2,b3;
int div(int n,int d);

int main()
{
	freopen("pascal.in","r",stdin);
	freopen("pascal.out","w",stdout);
	scanf("%d%d",&r,&d);
	contor=0;

	if(d==2 || d==3 || d == 5)
	{

		for(c=0;c<=r;c++)
		{
			a1=div(r,d);
			a2=div(r-c,d);
			a3=div(c,d);
			if(a1>(a2+a3))
				contor++;
		}
	}
	else
	{
		if(d==4)
		{
			for(c=0;c<=r;c++)
			{
				a1=div(r,d)>>1;
				a2=div(r-c,d)>>1;
				a3=div(c,d)>>1;
				if(a1>=(a2+a3))
					contor++;
			}
		}
		else
		{
			for(c=0;c<=r;c++)
			{
				a1=div(r,2);
				a2=div(r-c,2);
				a3=div(c,2);
				b1=div(r,3);
				b2=div(r-c,3);
				b3=div(c,3);

				if( (a1>=(a2+a3)) && (b1>=(b2+b3)) )
					contor++;
			}
		}
	}


	printf("%d",contor);
	return 0;
}
int div(int n,int d)
{
	s=0;
	while(n)
	{
		s+=n/d;
		n/=d;
	}
	return s;
}