Cod sursa(job #1311943)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 8 ianuarie 2015 19:21:40
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<fstream>
using namespace std;
ifstream in("nunta.in");
ofstream out("nunta.out");

typedef short int BIG[500];
BIG a,b;

void aduna(BIG &a,BIG &b)
{
    int t = 0,sum;
    int i;
    for(i = 1 ; i <= b[0] || i <= a[0]; i++)
    {
        sum = a[i] + b[i];
        a[i] = sum % 10;
        t = sum / 10;
    }
    if(t){
        a[0] = i;
        a[a[0]] = t;
    }
    else
        a[0] = i-1;
}

void afis(BIG nr)
{

    for(int i = nr[0]; i >= 1 ; i--)
        out<<nr[i];
}

void sw(BIG a,BIG b)
{

    for(int i = 0 ; i <= max(a[0],b[0]) ; i++)
        swap(a[i],b[i]);

}

int main()
{

    a[0] = a[1] = b[0] = 1;
    b[1] = 2;
    int n;
    in>>n;
    if(n == 1){
        afis(a);
        return 0;
    }
    if(n == 2)
    {
        afis(b);
        return 0;
    }
    for(int i = 3 ; i <= n ; i++){
        aduna(a,b);
        sw(a,b);
    }
    afis(b);
    return 0;
}