Cod sursa(job #27086)

Utilizator sims_glAlexandru Simion sims_gl Data 6 martie 2007 08:12:26
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>

#define nm 5010
#define mod 666013

int n, k, f[nm], sol;

int main()
{
	int i;

	freopen("kperm.in", "r", stdin);
    freopen("kperm.out", "w", stdout);

    scanf("%d%d", &n, &k);

    if (k % 2 == 0)
    {
    	sol = 0;
    }
    else
    {
        for (f[0] = i = 1; i <= 5000; ++i)
        	f[i] = ((long long)f[i - 1] * i) % mod;
    
        for (sol = 1, i = 1; i <= n % k; ++i)
        	sol = ((long long)sol * f[n / k + 1]) % mod;

        for (; i <= k; ++i)
        	sol = ((long long)sol * f[n / k]) % mod;
    
        sol = ((long long)sol * f[n % k]) % mod;
        sol = ((long long)sol * f[k - (n % k)]) % mod;
    }
    
    printf("%d\n", sol);
    
	return 0;
}