Cod sursa(job #995130)

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

using namespace std;

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

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

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

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

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