Cod sursa(job #147684)

Utilizator crawlerPuni Andrei Paul crawler Data 3 martie 2008 13:11:23
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <stdio.h>
#include <string.h>

int a[3][256];
int n;


#define r(x) ((x) % 3)
void add(int A[256],int B[256],int C[256])
{
	memset(C,0,sizeof(C));int t=0, i;
	for (i=1;i<=A[0] || i<=B[0] || t>0;++i)
	{
		C[i] = A[i]+B[i]+t;t=0;
		if(C[i] > 9) t=1, C[i]-=10;
		++C[0];
	}
}

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

	scanf("%d", &n);

	a[1][1] = 1;
	a[2][1] = 2;
	a[1][0] = 1;
	a[2][0] = 1;

	for(int i=3;i<=n;++i)
	add(a[r(i+2)],a[r(i+1)],a[r(i)]);

	while (a[r(n)][0])
	printf("%d",(int)a[r(n)][a[r(n)][0]]), --a[r(n)][0];


	return 0;
}