Cod sursa(job #542381)
Utilizator | Z.Z.Daniel blastoise | Data | 26 februarie 2011 12:51:06 |
---|---|---|---|
Problema | Sortari2 | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Romanian Master in Mathematics and Sciences 2011, Ziua 2 | Marime | 0.41 kb |
#include <stdio.h>
#define MOD 999017
long long nr;
int N,i,sol[1111];
int main()
{
freopen("sortari2.in","r",stdin);
freopen("sortari2.out","w",stdout);
scanf("%d",&N);
if(N>100) N=100;
sol[1]=1;
sol[2]=2;
for(i=3;i<=N;i++)
sol[i]=(3*sol[i-1]+MOD-sol[i-2])%MOD;
nr=1;
for(i=2;i<=N;i++)
nr=(nr*i)%MOD;
nr=(nr+MOD-sol[N])%MOD;
printf("%lld\n",nr);
return 0;
}