Cod sursa(job #196919)

Utilizator gcosminGheorghe Cosmin gcosmin Data 30 iunie 2008 11:13:13
Problema Nunta Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#include <string.h>

#define BASE 100000000
#define FORMAT "%08d"

int N;

int ant[1000];
int cur[1000];
int aux[1000];

void add(int a[], int b[])
{
	int i, t = 0;

	for (i = 1; i <= a[0] || i <= b[0] || t; i++, t /= BASE)
		a[i] = (t += a[i] + b[i]) % BASE;

	a[0] = i - 1;
}

void print_nr(int a[])
{
	int i;

	printf("%d", a[a[0]]);
	for (i = a[0] - 1; i >= 1; i--) printf(FORMAT, a[i]);
	printf("\n");
}

int main()
{
	freopen("nunta.in", "r", stdin);
	freopen("nunta.out", "w", stdout);

	scanf("%d", &N);

	ant[0] = 1; ant[1] = 1;
	cur[0] = 1; cur[1] = 1;

	for (int i = 2; i <= N; i++) {
		memcpy(aux, ant, sizeof(ant));
		memcpy(ant, cur, sizeof(cur));
		add(cur, aux);
	}

	print_nr(cur);

return 0;
}