Cod sursa(job #727134)

Utilizator avram_florinavram florin constantin avram_florin Data 27 martie 2012 19:19:14
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<cstdio>
#include<fstream>
#include<cstring>

using namespace std;

const int MaxC = 300;

const char InFile[] = "nunta.in";
const char OutFile[] = "nunta.out";

int N,A[MaxC],B[MaxC],C[MaxC];

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

int main()
{
	ifstream fin( InFile );
	ofstream fout( OutFile );
	fin >> N;
	A[0] = B[0] = A[1] = 1;
	B[1] = 2;
	for( register int i = 3 ; i <= N ; ++i )
		{
			add(A,B,C);
			memcpy(A,B,sizeof(B));
			memcpy(B,C,sizeof(C));
		}
	if( N == 1 )
		fout << "1\n";
		else
		{
			for( register int i = B[0] ; i ; --i )
				fout << B[i];
			fout << '\n';
		}
	fin.close();fout.close();
	return 0;
}