Cod sursa(job #984489)
#include<stdio.h>
FILE *f = fopen("kperm.in","r");
FILE *g = fopen("kperm.out","w");
#define MOD 666013
int N,K,Sol;
void citire(void)
{
fscanf(f,"%d %d",&N,&K);
}
inline int Perm(int P)
{
int Prod = 1;
for(int i=1;i<=P;i++)
Prod = (1LL*Prod*i)%MOD;
return Prod;
}
inline int Put(int baza,int exp)
{
int Prod = 1;
for(int i=1;i<=exp;i++)
Prod = (1LL*Prod*baza)%MOD;
return Prod;
}
void Rezolvare(void)
{
if((K&1) == 0)
return ;
int C = N%K;
int R = N/K;
Sol = 1LL*Perm(C)*Perm(K-C)%MOD;
Sol = 1LL*Sol*Put(Perm(R+1),C)%MOD;
Sol = 1LL*Sol*Put(Perm(R),K-C)%MOD;
}
int main()
{
citire();
Rezolvare();
fprintf(g,"%d\n",Sol);
}