Cod sursa(job #995125)

Utilizator chiriacandrei25Chiriac Andrei chiriacandrei25 Data 7 septembrie 2013 16:13:03
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
#include <algorithm>

using namespace std;

int n,a[220],b[220],c[220],lena,lenb,lenc;

inline void Read()
{
    ifstream fin("nunta.in");
    fin>>n;
    fin.close();
}

inline void Adunare(int a[], int n, int b[], int m, int c[], int &k)
{
    int i,x,rest;
    k=max(n,m);rest=0;
    for(i=1;i<=k;i++)
    {
        x=a[i]+b[i]+rest;
        if(x>9)
        {
            c[i]=x-10;
            rest=1;
        }
        else
        {
            c[i]=x;
            rest=0;
        }
    }
    while(rest)
    {
        c[++k]=rest;
        rest/=10;
    }
}

inline void Solve()
{
    ofstream fout("nunta.out");
    int i,j;
    lena=1;a[1]=0;
    lenb=1;b[1]=1;
    for(i=1;i<=n;i++)
    {
        Adunare(a,lena,b,lenb,c,lenc);
        lena=lenb;
        for(j=1;j<=lenb;j++)
            a[j]=b[j];
        lenb=lenc;
        for(j=1;j<=lenc;j++)
            b[j]=c[j];
    }
    for(i=lenc;i>=1;i--)
        fout<<c[i];
    fout<<"\n";
    fout.close();
}

int main()
{
    Read();
    Solve();
    return 0;
}