Cod sursa(job #543441)
Utilizator | Filip 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;
}