Cod sursa(job #1850873)

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

FILE *f = fopen("nunta.in", "r");
FILE *g = fopen("nunta.out", "w");
unsigned char a1[50], a2[50], cc[50];
short n,i, t = 0;

int main() {
    fscanf(f,"%d", &n);
    if (n < 4) { fprintf(g,"%d", n); return 0;}
    a1[0] = a1[1] = 2;
    a2[0] = 1, a2[1] = 3;

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

    return 0;
}