Cod sursa(job #1410299)

Utilizator atatomirTatomir Alex atatomir Data 30 martie 2015 23:16:10
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>
#include <iostream>

#define maxN 105

long n,i,s,d;
unsigned char C[2][maxN];

inline void addV(long d,long s){
    C[d][0] = std::max(C[d][0],C[s][0]);
    long i;
    for(i=1;i<=C[d][0];i++) C[d][i]+=C[s][i];
    for(i=1;i<=C[d][0];i++){
        C[d][i+1] += C[d][i]/100;
        C[d][i] %= 100;
    }
    if(C[d][C[d][0]+1]) C[d][0]++;
}

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

    fscanf(fin,"%ld",&n);
    C[0][0] = C[0][1] = 1;
    C[1][0] = C[1][1] = 1;
    for(i=2;i<maxN;i++) C[0][i]=C[1][i]=0;

    s=0;d=1;
    for(i=2;i<=n;i++){
        s^=1;d^=1;
        addV(d,s);
    }

    fprintf(fout,"%d",C[d][C[d][0]]);
    for(i=C[d][0]-1;i;i--) {
            fprintf(fout,"0");
            fprintf(fout,"%d",C[d][i]);
    }

    return 0;
}