Cod sursa(job #543904)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 28 februarie 2011 18:35:31
Problema Sortari2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <stdio.h>

using namespace std;

#define maxn 1010
#define mod 999017

int n, i, j, k, nr;
int d[maxn], x[maxn];

int main()
{
    freopen("sortari2.in", "r", stdin);
    freopen("sortari2.out", "w", stdout);
    scanf("%d", &n);
    x[0]=x[1]=1;
    for(int i=2; i<=n; ++i)
        x[i]=(x[i-1]*2)%mod;
    d[0]=1;
    nr=1;
    for(int i=1; i<=n; ++i)
    {
        nr=(nr*i)%mod;
        for(int j=1; j<=i; ++j)
            d[i]=(d[i]+1LL*d[i-j]*x[j-1])%mod;
    }
    printf("%d\n", (nr-d[n]+mod)%mod);
    return 0;
}