Cod sursa(job #25107)

Utilizator MaGdUtZaVasile Maria-Magdalena MaGdUtZa Data 4 martie 2007 10:41:31
Problema Zero 2 Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 3, Clasa a 9-a si gimnaziu Marime 0.93 kb
#include<stdio.h>

#define dim 30001

typedef int Huge[dim];

void produs(Huge a, long b);

long impartire(Huge a,long b);

long long unsigned n,b,j,i,r,k,l,kk,nr;

Huge a;

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

	for(nr=1; nr<=10; ++nr)
	{

	scanf("%llu %llu", &n, &b);

	kk=0;

	for(i=1; i<=a[0]; ++i)

		a[i]=0;

	a[0]=1;

	a[1]=1;

	for(k=n; k>=2; --k)
	{
		for(l=k; l>=2; --l)
		{
			i=l;

			produs(a,i);

		}
	}
	do
	{
		r=impartire(a,b);

		if(r==0)

			++kk;

	}while(r==0);

	printf("%llu\n", kk);
	}
}
void produs(Huge a, long i)
{
	int t=0,j;

	for(j=1; j<=a[0] || t; ++j)
	{

		a[j]=a[j]*i+t;

		t=a[j]/10;


		a[j]%=10;
	}
	a[0]=j-1;
}
long impartire(Huge a, long b)
{
	long r=0,i;

	for(i=a[0]; i; --i)
	{
		r=10*r+a[i];

		a[i]=r/b;

		r%=b;
	}
	while(!a[a[0]] && a[0]>1)

		--a[0];

	return r;

}