Cod sursa(job #1793112)

Utilizator andreistanStan Andrei andreistan Data 30 octombrie 2016 19:37:54
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
using namespace std;

const int MAXN=1000;

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

int N;

unsigned char F1[MAXN], F2[MAXN];
unsigned char *s1 = &F1[0], *s2 = &F2[0], *s;

void afis(unsigned char A[])
{
    for(int i=A[0];i>=1;i--)
        g<<(int)A[i];
}

void add(unsigned char A[], unsigned char B[])
{
    int i, t = 0;
    for(i = 1; i <= B[0] || t; i++, t /= 10)
        A[i] = (t += A[i] + B[i]) % 10;
    A[0] = i - 1;
}

int main()
{
    F1[0]=F2[0]=1;
    F1[1]=1;
    F2[1]=2;
    f>>N;
    if(N <= 2)
        s2[1] = N;
    else
        for(int i = 3; i <= N; i++)
        {
            add(s1, s2);
            s = s1;
            s1 = s2;
            s2 = s;
        }
    afis(s2);
    return 0;
}