Cod sursa(job #1129353)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 27 februarie 2014 21:38:07
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <algorithm>
#include <cstring>

#define NMAX 1000

using namespace std;

ifstream cin("nunta.in");
ofstream cout("nunta.out");

int Aux1[NMAX], Aux2[NMAX], Aux3[NMAX];

void adun(int a[], int b[]){
    a[0] = max(a[0], b[0]);
    int t = 0;
    for(int i = 1; i <= a[0]; ++i){
        a[i] += b[i] + t;
        t = a[i] / 10;
        a[i] %= 10;
    }
    while(t > 0){
        a[++a[0]] = t % 10;
        t /= 10;
    }
}

int main(){
    int n = 0;
    cin >> n;
    if(n <= 3){
        cout << n;
        return 0;
    }
    Aux1[0] = Aux2[0] = 1;
    Aux1[1] = 2;
    Aux2[1] = 3;
    for(int i = 4; i <= n; ++i){

        memcpy(Aux3, Aux1, sizeof(Aux1));
        adun(Aux3, Aux2);
        memcpy(Aux1, Aux2, sizeof(Aux1));
        memcpy(Aux2, Aux3, sizeof(Aux2));
    }
    for(int i = Aux3[0]; i >= 1; --i)
        cout << Aux3[i];
}