Cod sursa(job #2244484)

Utilizator tziplea_stefanTiplea Stefan tziplea_stefan Data 22 septembrie 2018 20:21:52
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
#define VAL 505

using namespace std;

ifstream fin("nunta.in");
ofstream fout("nunta.out");

int N, i, j, t, X, Y, Z;
int A[VAL], B[VAL], C[VAL];

void ADD()
{
    t=0;
    for (i=1; i<=B[0]; i++)
    {
        C[i]=B[i];
        if (i<=A[0])
            C[i]+=A[i];
        C[i]+=t;
        t=C[i] / 1000;
        C[i]%=1000;
    }
    C[0]=B[0];
    if (t>0)
        C[++C[0]]=1;
}

void Copy1()
{
    A[0]=B[0];
    for (i=1; i<=B[0]; i++)
        A[i]=B[i];
}

void Copy2()
{
    B[0]=C[0];
    for (i=1; i<=C[0]; i++)
        B[i]=C[i];
}

int main()
{
    fin >> N;
    if (N<=2)
    {
        fout << N;
        return 0;
    }
    A[0]=B[0]=A[1]=1;
    B[1]=2;
    for (j=3; j<=N; j++)
    {
        ADD();
        Copy1();
        Copy2();
    }
    for (i=C[0]; i>=1; i--)
    {
        if (i==C[0])
        {
            fout << C[i];
            continue;
        }
        Z=C[i] % 10;
        C[i]/=10;
        Y=C[i] % 10;
        C[i]/=10;
        X=C[i] % 10;
        fout << X << Y << Z;
    }
    fin.close();
    fout.close();
    return 0;
}