Cod sursa(job #25002)

Utilizator filipbFilip Cristian Buruiana filipb Data 4 martie 2007 08:54:08
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
#define MOD 666013

int N, K, c, r;
long long cnt = 1, r1, r2;

int main(void)
{
    int i;
    
    freopen("kperm.in", "r", stdin);
    freopen("kperm.out", "w", stdout);
    
    scanf("%d %d", &N, &K);
    
    if (K % 2 == 0) { printf("0\n"); return 0; }
    
    c = N / K; r = N % K;
    for (i = 1; i <= r; i++)
        cnt = (cnt * i) % MOD;
    for (i = 1; i <= K-r; i++)
        cnt = (cnt * i) % MOD;
        
    for (r1 = 1, i = 1; i <= c; i++)
        r1 = (r1 * i) % MOD;
    r2 = (r1 * (c+1)) % MOD;
    
    for (i = 1; i <= K-r; i++)
        cnt = (cnt * r1) % MOD;
    for (i = 1; i <= r; i++)
        cnt = (cnt * r2) % MOD;
    
    printf("%lld\n", cnt);       

    
    return 0;
}