Cod sursa(job #1839401)

Utilizator giotoPopescu Ioan gioto Data 2 ianuarie 2017 21:06:51
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
using namespace std;

const int MOD = 100000000;
int n, a[31], b[31], c[31];
int main()
{
    freopen("nunta.in", "r", stdin);
    freopen("nunta.out", "w", stdout);
    scanf("%d", &n);
    a[0] = 1; b[0] = 1;
    a[1] = 1; b[1] = 1;
    for(int t = 2; t <= n ; ++t){
        for(int i = 0; i <= b[0] ; ++i)
            c[i] = b[i];
        int T = 0;
        for(int i = 1; i <= b[0] ; ++i){
            b[i] += a[i] + T;
            T = b[i] / MOD;
            b[i] %= MOD;
        }
        if(T) b[++b[0]] = T;
        for(int i = 0; i <= c[0] ; ++i)
            a[i] = c[i];
    }
    printf("%d", b[b[0]]);
    for(int i = b[0] - 1; i >= 1 ; --i){
        if(b[i] == 0) {printf("00000000"); continue ;}
        int aux = b[i];
        while(b[i] < MOD / 10)
            printf("0"), b[i] *= 10;
        printf("%d", aux);
    }
    return 0;
}