Cod sursa(job #150940)

Utilizator znakeuJurba Andrei znakeu Data 7 martie 2008 17:32:25
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
// more puncte moca :D
#include <stdio.h>
#include <string.h>
#define MAXC 215
int v[3][MAXC];

void add(int A[], int B[])
{
    int i, t = 0;
    for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
        A[i] = (t += A[i] + B[i]) % 10;
    A[0] = i - 1;
}

void cpy(int A[], int B[])
{
	int i;
	for (i=MAXC-1; i>=0; i--)
		A[i]=B[i];	
}

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

	int i,n;
	
	scanf("%d",&n);
	if (n<3)
	{
		printf("%d\n",n);
		fclose(stdin);
		fclose(stdout);
		return 0;
	}
	v[1][0]=1; v[1][1]=1; v[2][0]=1; v[2][1]=2;
	
	for (i=3; i<=n; i++)
	{
		memset(v[i%3],0,sizeof(v[i%3]));
		add(v[i%3],v[(i+1)%3]);
		add(v[i%3],v[(i+2)%3]);
	}
	for (i=v[n%3][0]; i>0; i--)
		printf("%d",v[n%3][i]);
	printf("\n");
	
	fclose(stdout);
	fclose(stdin);
	return 0;
}