Pagini recente » Cod sursa (job #1790145) | Cod sursa (job #897345) | Cod sursa (job #619740) | Cod sursa (job #2836331) | Cod sursa (job #2774966)
#include<stdio.h>
#define lul unsigned long long
#define N 666013
lul n,k,f[4999],r,c,m,i;
lul P(lul x,lul n)
{
lul y;
for(y=1;n;n>>=1,x=(x*x)%N)
if(n%2)
y=(y*x)%N;
return y;
}
int main()
{
freopen("kperm.in","r",stdin),freopen("kperm.out","w",stdout),scanf("%llu%llu",&n,&k);
if(k%2==0)
printf("0");
else {
c=n/k,r=n%k,f[0]=1,m=r;
if(k-r>m)
m=k-r;
if(c+1>m)
m=c+1;
for(i=1;i<=m;++i)
f[i]=(i*f[i-1])%N;
printf("%llu",(((f[r]*f[k-r])%N)*((P(f[c],k-r)*P(f[c+1],r))%N))%N);
}
return 0;
}