Cod sursa(job #543441)

Utilizator filipbFilip Cristian Buruiana filipb Data 28 februarie 2011 01:23:06
Problema Sortari2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <stdio.h>

#define MOD 999017

int N, Res;

int getFib(int x)
{
	if (x <= 2)
		return 1;
	int f1 = 1, f2 = 1, f3;
	for (int i = 3; i <= x; ++i)
	{
		f3 = f1 + f2;
		if (f3 >= MOD) f3 -= MOD;
		f1 = f2; f2 = f3;
	}
	return f2;
}

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

	scanf("%d", &N);
	Res = 1;
	for (int i = 2; i <= N; ++i)
		Res = (Res * i) % MOD;
	Res -= getFib(2*N-1);
	if (Res < 0) Res += MOD;

	printf("%d\n", Res);

	return 0;
}