Cod sursa(job #1850861)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 18 ianuarie 2017 23:22:17
Problema Nunta Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <cstdio>
#define unc unsigned char
#define max(a,b)(a>b?a:b)

const int SIZE = 100;
unc a1[SIZE], a2[SIZE], cc[SIZE];
int n,i, t = 0;

int main() {
    FILE *f = fopen("nunta.in", "r");
    FILE *g = fopen("nunta.out", "w");
    fscanf(f,"%d", &n);
    if (n < 3) { fprintf(g,"%d", n); return 0;}
    a1[0] = a1[1] = 1;
    a2[0] = 1, a2[1] = 2;

    while (n-->2) {
        for (i = 1, t = 0; i <= max(a1[0], a2[0]) || t; i++) {
            t += a1[i]+a2[i];
            cc[i] = t%10;
            //fprintf(g,"%d", (int) cc[i]);
            t /= 10;
        }
        t = cc[0] = i-1;
        for (i = 0; i <= (int)t; i++) {
            a1[i] = a2[i], a2[i] = cc[i], cc[i] = 0;
        }
        //fprintf(g,"\n");
    }
    //fprintf(g,"%d", (int) a2[0]);
    for (int i = a2[0]; i >= 1; i--)
        fprintf(g,"%d", (int) a2[i]);

    return 0;
}