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