Cod sursa(job #2308724)

Utilizator LivcristiTerebes Liviu Livcristi Data 27 decembrie 2018 17:27:35
Problema Nunta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>
#define NUM 500
int a[NUM];
int b[NUM];
int c[NUM];
int n;
using namespace std;
void adunare(int * c, int * a, int * b)
{
    int t = 0;
    c[0] = a[0] > b[0] ? a[0] : b[0];
    for(int i = 1; i <= c[0]; ++i)
    {
        t += a[i] + b[i];
        c[i] = t % 10;
        t /= 10;
    }
    if(t > 0)
        c[++c[0]] = t;
}
void atribuire(int * a, int * b)
{
    a[0] = b[0];
    for(int i = 0; i <= b[0]; ++i)
        a[i] = b[i];
}
int main()
{
    ifstream f("nunta.in");
    ofstream g("nunta.out");
    f >> n;
    n--;
    if(n <= 1)
    {
        g << (!n ? 1 : 2);
    }
    else
    {
        a[0] = b[0] = 1;
        a[1] = 1;
        b[1] = 2;
        for(int i = 1; i < n; ++i)
        {
            adunare(c, a, b);
            atribuire(a, b);
            atribuire(b, c);
        }
        for(int i = c[0]; i > 0;--i)
            g << c[i];
    }
    f.close();
    g.close();
}