Cod sursa(job #2029176)

Utilizator akaprosAna Kapros akapros Data 29 septembrie 2017 16:47:32
Problema Sortari2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>
#define maxN 1002
#define mod 999017
using namespace std;

FILE *fin = freopen("sortari2.in", "r", stdin);
FILE *fout = freopen("sortari2.out", "w", stdout);

/* -------------------------------------------------------- */
int n;
/* -------------------------------------------------------- */
int dp[maxN];
int f[maxN];
/* -------------------------------------------------------- */
int ans;

int main()
{
    scanf("%d", &n);
    dp[1] = 1;
    f[1] = 1;
    dp[2] = 2;
    f[2] = 2;
    for (int i = 3; i <= n; ++ i)
    {
        f[i] = (1LL * f[i - 1] * i) % mod;
        dp[i] = 1;
        for (int j = 1; j < i; ++ j)
            dp[i] = (dp[i] + 1LL * dp[i - j] * j) % mod;
    }
    printf("%d\n", (f[n] - dp[n] + mod) % mod);
    return 0;
}