Cod sursa(job #1311985)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 8 ianuarie 2015 19:45:29
Problema Nunta Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<cstdio>
using namespace std;

short int a[500],b[500];
void aduna()
{
    short 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;
        t = sum / 10;
    }
    if(t){
        a[0] = i;
        a[a[0]] = t;
    }
    else
        a[0] = i-1;
}

void afis(short int nr[])
{

    for(int i = nr[0]; i >= 1 ; i--)
        printf("%d",nr[i]);
}

int max(int a,int b)
{

    if(a >= b)
        return a;
    return b;
}


void sw()
{

    for(short int i = 0 ; i <= max(a[0],b[0]) ; i++)
       {
           int tmp = a[i];
           a[i] = b[i];
           b[i] = tmp;
       }

}

int main()
{

    freopen("nunta.in","r",stdin);
    freopen("nunta.out","w",stdout);
    a[0] = a[1] = b[0] = b[1] = 1;
    int n;
    scanf("%d",&n);
    for(int i = 2 ; i <= n ; i++){
        aduna();
        sw();
    }
    afis(b);
    return 0;
}