Cod sursa(job #1483242)

Utilizator eu3neuomManghiuc Teodor-Florin eu3neuom Data 8 septembrie 2015 23:20:56
Problema Nunta Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <cstdio>
#include <fstream>
#include <cstring>

using namespace std;

FILE *fin = fopen("nunta.in", "r");
FILE *fout = fopen("nunta.out", "w");

const int NMax = 200;

int n, t, lim;
int A[NMax], B[NMax], C[NMax];

inline void sum(){
    t = 0;
    lim = max(A[0], B[0]);
    for(int i = 1; i <= lim; i++){
        t += A[i] + B[i];
        C[i] = t % 10;
        t /= 10;
    }
    if(t != 0){
        C[++lim] = t;
    }
    C[0] = lim;
}

inline void solve(){
    A[0] = B[0] = A[1] = B[1] = 1;
    for(int i = 1; i < n; i++){
        sum();
        for(int j = 0; j <= B[0]; j++){
            A[j] = B[j];
        }
        for(int j = 0; j <= C[0]; j++){
            B[j] = C[j];
        }
    }
    for(int i = C[0]; i > 0; i--){
        fprintf(fout, "%d", C[i]);
    }
}

int main(){
    fscanf(fin, "%d", &n);
    if(n == 1){
        fprintf(fout, "1");
    } else {
        solve();
    }
    return 0;
}