Cod sursa(job #940991)

Utilizator alex_unixPetenchea Alexandru alex_unix Data 17 aprilie 2013 18:12:45
Problema Sortari2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb

#include <cstdio>

const int MOD(999017);

int n;
long long result;

inline void read (void)
{
	std::freopen("sortari2.in","r",stdin);
	std::scanf("%d",&n);
	std::fclose(stdin);
}

inline void print (void)
{
	std::freopen("sortari2.out","w",stdout);
	std::printf("%lld\n",result);
	std::fclose(stdout);
}

inline void compute (void)
{
	result = 1;
	for (long long i(1) ; i <= n ; ++i)
	{
		result *= i;
		result %= MOD;
	}
	n = (n << 1) - 2;
	long long a(1), b(1), c(2);
	for (int i(2) ; i <= n ; ++i)
	{
		c = a + b;
		c %= MOD;
		a = b;
		b = c;
	}
	result -= c;
	if (result < 0)
		result += MOD;
}

int main (void)
{
	read();
	compute();
	print();
	return 0;
}