Cod sursa(job #857592)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 17 ianuarie 2013 23:49:51
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <cstdio>
#define Nmax 310
using namespace std;

int N,Fibo[3][Nmax];

void Add(int C,int A,int B) {

    int i,Rest=0;

    for(i=1;i<=Fibo[A][0] || i<=Fibo[B][0] || Rest;i++) {
        Fibo[C][i]=Fibo[A][i]+Fibo[B][i]+Rest;
        Rest=Rest/10+Fibo[C][i]/10;
        Fibo[C][i]%=10;
        }

    Fibo[C][0]=i-1;

}
void Solve() {

    int i;

    Fibo[0][0]=1;
    Fibo[0][1]=1;
    Fibo[1][0]=1;
    Fibo[1][1]=2;

    for(i=3;i<=N;i++)
        Add((i-1)%3,(i-3)%3,(i-2)%3);

}
void Read() {

    freopen("nunta.in", "r",stdin);
    scanf("%d",&N);
    fclose(stdin);

}
void Write() {

    freopen("nunta.out", "w", stdout);
    for(int i=Fibo[(N-1)%3][0];i>=1;i--)
        printf("%d",Fibo[(N-1)%3][i]);
    printf("\n");
    fclose(stdout);

}
int main() {

    Read();
    Solve();
    Write();

    return 0;

}