Cod sursa(job #612893)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 12 septembrie 2011 18:59:26
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
using namespace std;

int n, a[3][1000], zero[1000];

void suma(int a[], int b[]) // a = a + b
{
    int i, t = 0;
    for (i = 1; i <= a[0] || i <= b[0] || t; ++i, t /= 10)
        a[i] = (t += a[i] + b[i]) % 10;
    a[0] = i - 1;
}

void copie(int a[], int b[]) // a = b;
{
    for (int i = 0; i <= b[0]; ++i)
        a[i] = b[i];
    if (a[0] == 999) a[0] = 0;
}

int main()
{
    ifstream f("nunta.in");
    ofstream g("nunta.out");

    f >> n;

    // a[2] = a[1] + a[0];
    // a[0] = a[1]
    // a[1] = a[2]

    a[1][0] = a[1][1] = 1; zero[0] = 999;
    for (int i = 1; i <= n; ++i)
        suma(a[2], a[1]), suma(a[2], a[0]),    copie(a[0], a[1]), copie(a[1], a[2]), copie(a[2], zero);

    for (int i = a[1][0]; i >= 1; --i)
        g << a[1][i];
    g.close();
    return 0;
}