Cod sursa(job #545111)
Utilizator | Lepadat Mihai-Alexandru skull | Data | 2 martie 2011 18:37:10 |
---|---|---|---|
Problema | Sortari2 | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <fstream>
using namespace std;
#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()
{
ifstream fin("sortari2.in");
ofstream fout("sortari2.out");
fin >> N;
Res = 1;
for (int i = 2; i <= N; ++i)
Res = (Res * i) % MOD;
Res -= getFib(2*N-1);
if (Res < 0) Res += MOD;
fout << Res;
return 0;
}