Cod sursa(job #1642706)

Utilizator andrei20003Ionescu Andrei andrei20003 Data 9 martie 2016 15:44:58
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <cstdio>
#define MOD 666013
#define MAXN 5000
int fact[MAXN+1], nr[MAXN];
int main(){
    int n, k, ans, i;
    FILE *fin, *fout;
    fin=fopen("kperm.in", "r");
    fout=fopen("kperm.out", "w");
    fscanf(fin, "%d%d", &n, &k);
    fact[0]=1;
    for(i=1; i<=n; i++){
        nr[i%k]++;
        fact[i]=(fact[i-1]*(long long)i)%MOD;
    }
    ans=(fact[n%k]*(long long)fact[k-n%k])%MOD;
    for(i=0; i<k; i++){
        ans=(ans*(long long)fact[nr[i]])%MOD;
    }
    if(k%2==0){
        ans=0;
    }
    fprintf(fout, "%d\n", ans);
    return 0;
}