Cod sursa(job #237993)

Utilizator marcelcodreaCodrea Marcel marcelcodrea Data 31 decembrie 2008 00:55:10
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
#define MOD 666013
long long fact[5005];
int r;
int c;
int n;
long long prt;
int k;
long long pr1;
long long pr2;

int main()
{
    freopen("kperm.in","r",stdin);
    freopen("kperm.out","w",stdout);
    fact[0] = 1;
    for(int i = 1; i <= 5000; i++)
     fact[i] = (fact[i-1] * i) % MOD;
    scanf("%d %d",&n,&k);
    if (k % 2 == 0) printf("0 \n");
     else
    {
    r = n % k;
    c = n / k;
    pr1 = 1;
    pr2 = 1;
    for(int i = 1; i <= r; i++)
     pr1 = (pr1 *fact[c+1]) % MOD;
    for(int i = 1; i <= k-r; i++)
     pr2 = (pr2 *fact[c]) % MOD;

    prt = (fact[r] * fact[k-r]) % MOD;
    prt = (((prt * pr1) % MOD) * pr2) % MOD;
    printf("%d \n",prt);
    }
    return 0;
}