Cod sursa(job #857587)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 17 ianuarie 2013 23:44:39
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#define Nmax 210
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() {

    ifstream in("nunta.in");
    in>>N;
    in.close();

}
void Write() {

    ofstream out("nunta.out");
    for(int i=Fibo[(N-1)%3][0];i>=1;i--)
        out<<Fibo[(N-1)%3][i];
    out<<'\n';
    out.close();

}
int main() {

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

    return 0;

}