Cod sursa(job #1816806)

Utilizator CidanielCraciun Ioan Daniel Cidaniel Data 26 noiembrie 2016 22:10:23
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
using namespace std;
ifstream f ("nunta.in");
ofstream g ("nunta.out");

int n, a[20], b[20], c[20], i;

void suma()
{
    int i;
    c[1]=b[1]+a[1];
    for (i=2; i<=a[0]; i++)
    {
        c[i]=c[i-1]/10+b[i]+a[i];
        c[i-1]=c[i-1]%10;
    }
    for (i=a[0]+1; i<=b[0]+1; i++)
    {
        c[i]=c[i-1]/10+b[i];
        c[i-1]=c[i-1]%10;
    }
    if (c[b[0]+1]!=0)
        c[0]=b[0]+1;
    else
        c[0]=b[0];
}

void schimb ()
{
    int i, n;
    for (i=0; i<=b[0]+1; i++)
    {
        a[i]=b[i];
    }
    n=c[0]+1;
    for (i=0; i<=n; i++)
    {
        b[i]=c[i];
        c[i]=0;
    }
}

int main()
{
    f>>n;
    if (n==1)
    {
        g<<1;
        f.close();
        g.close();
        return 0;
    }
    if (n==2)
    {
        g<<2;
        f.close();
        g.close();
        return 0;
    }
    a[0]=1;
    a[1]=1;
    b[0]=1;
    b[1]=2;
    for (i=1; i<=n-2; i++)
    {
        suma();
        schimb();
    }
    if (b[b[0]+1])
        g<<b[b[0]+1];
    for (i=b[0]; i>=1; i--)
        g<<b[i];
    f.close();
    g.close();
    return 0;
}