Cod sursa(job #2044805)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 21 octombrie 2017 14:11:08
Problema Sortari2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <bits/stdc++.h>

const int MAXN = (int) 1e3;
const int MOD = 999017;

int dp[MAXN + 1];

int main() {
    FILE *fi, *fout;
    int i, j, n;
    fi = fopen("sortari2.in" ,"r");
    fout = fopen("sortari2.out" ,"w");
    fscanf(fi,"%d " ,&n);
    int fact = 1;
    for(i = 1; i <= n; i++) {
        dp[i] = 1;
        for(j = i - 1; j > 0; j--) {
           dp[i] = (dp[i] + dp[i - j] * j) % MOD;
        }
        fact = (fact * i) % MOD;
    }
    fprintf(fout,"%d" ,(fact - dp[n] + MOD) % MOD);
    fclose(fi);
    fclose(fout);
    return 0;
}