Cod sursa(job #524383)

Utilizator loginLogin Iustin Anca login Data 21 ianuarie 2011 00:24:01
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
# include <fstream>
# include <iostream>
# define DIM 300
using namespace std;
int n, a[3][DIM];

void add(int c[], int a[], int b[])
{
	int N;
    if(a[0]<b[0])
    {
		for(int i=a[0]+1;i<=b[0];++i)
			a[i]=0;
		N=b[0];
	}
	else
	{
		for(int i=b[0]+1;i<=a[0];++i)
			b[i]=0;
		N=a[0];
	}
	int q, t=0;
	for(int i=1;i<=N;++i)
	{
		q=a[i]+b[i]+t;
		c[i]=q%10;
		t=q/10;
	}
	c[0]=N;
	while (t)
	{
		c[++c[0]]=t%10;
		t/=10;
	}
}

int main ()
{
	ifstream fin ("nunta.in");
	ofstream fout ("nunta.out");
	fin>>n;
	if (n==1)fout<<"1";
	else if (n==2)fout<<"2";
	else
	{
		a[1][0]=a[1][1]=1;
		a[2][0]=1;a[2][1]=2;
		for(int i=3;i<=n;++i)
			add(a[i%3],a[(i-1)%3],a[(i-2)%3]);
		int p=n%3;
		for(int i=a[p][0];i;--i)
			fout<<a[p][i];
	}
	return 0;
}