Cod sursa(job #1022590)

Utilizator Athena99Anghel Anca Athena99 Data 5 noiembrie 2013 19:16:26
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <cassert>
#include <cstdio>
#include <vector>

const int base= 10;
const int cmax= 209;

int x[cmax+1], y[cmax+1], aux[cmax+1];

int main(  ) {
    assert(freopen("nunta.in", "r", stdin));
    assert(freopen("nunta.out", "w", stdout));
    
    int n;
    assert(scanf("%d", &n));
    if ( n<=3 ) {
        printf("%d\n", n);
        return 0;
    }

    n-= 3;
    x[0]= y[0]= 1;
    x[1]= 3;
    y[1]= 2;
    while ( n>0 ) {
        --n;
        for ( int i= 0; i<=x[0]; ++i ) {
            aux[i]= x[i];
        }
        
        int t= 0;
        for ( int i= 1; i<=x[0] || i<=y[0] || t!=0; ++i ) {
            if ( i>x[0] ) {
                ++x[0];
            }
            x[i]+= y[i]+t;
            t= x[i]/base;
            x[i]%= base;
        }

        for ( int i= 0; i<=aux[0]; ++i ) {
            y[i]= aux[i];
        }
    }

    for ( int i= x[0]; i>0; --i ) {
        printf("%d", x[i]);
    }
    printf("\n");

    return 0;
}