Cod sursa(job #1129357)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 27 februarie 2014 21:39:23
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <cstdio>
#include <algorithm>
#include <cstring>

#define NMAX 1000

using namespace std;

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;
    freopen("nunta.in", "r", stdin);
    freopen("nunta.out", "w", stdout);
    scanf("%d", &n);
    if(n <= 3){
        printf("%d", 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)
        printf("%d", Aux3[i]);
}