Cod sursa(job #26685)

Utilizator surcauvsurcau vasile surcauv Data 5 martie 2007 20:24:45
Problema Kperm Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
# include <stdio.h>

# define  _fin  "kperm.in"
# define  _fout "kperm.out"

# define  ll    long long

# define  mod	666013


ll fact(ll x)
{
	ll res=1, i=2;
	for (; i<=x; i++) res = (res*i) % mod;
	return res;
}

ll powx(ll x, ll pw)
{
	ll res=1, i=1;
	for(; i<=pw; i++) res = (res*x) % mod;
	return res;
}

int main()
{
	freopen(_fin, "r", stdin);
	freopen(_fout,"w", stdout);
	
	ll n, k, c, r, sol;
	
	scanf("%lld%lld", &n, &k), c = n/k, r=n%k;
	
	sol = fact(r), 
	sol = ( sol * fact(k-r) ) % mod;
	sol = ( sol * powx( fact(c+1), r ) ) % mod;
	sol = ( sol * powx( fact(c), k-r ) ) % mod;
	
	printf("%lld\n", sol);
	
	return 0;
}