Cod sursa(job #29829)

Utilizator dominoMircea Pasoi domino Data 10 martie 2007 01:16:33
Problema Kperm Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>

#define MAX_N 5005
#define MOD 666013
#define FIN "kperm.in"
#define FOUT "kperm.out"
#define ll long long

int N, K, fact[MAX_N], Res;

int main(void)
{
    int i;

    freopen(FIN, "r", stdin);
    freopen(FOUT, "w", stdout);

    scanf("%d %d", &N, &K);

    fact[0] = 1;
    for (i = 1; i <= N; i++)
        fact[i] = ((ll)fact[i-1]*i) % MOD;

    Res = ((ll)fact[N%K]*fact[K-(N%K)]) % MOD;
    for (i = 0; i < N%K; i++)
        Res = ((ll)Res*fact[N/K+1]) % MOD;
    for (i = 0; i < K-(N%K); i++)
        Res = ((ll)Res*fact[N/K]) % MOD;

    printf("%d\n", Res);

    return 0;
}