Pagini recente » Cod sursa (job #2260564) | Cod sursa (job #520972) | Cod sursa (job #982584) | Cod sursa (job #1784911) | Cod sursa (job #515909)
Cod sursa(job #515909)
#include <stdio.h>
#define NMAX 5005
#define MOD 666013
#define ll long long
int n,k,fact[NMAX],cat,rest;
ll rez;
inline ll lgput(int baza,int exp)
{
ll act=baza,act2=1;
while (exp)
{
if (exp & 1)
act2=(act2*act)%MOD;
act=(act*act)%MOD;
exp>>=1;
}
return act2;
}
int main()
{
freopen("kperm.in","r",stdin);
freopen("kperm.out","w",stdout);
scanf("%d%d",&n,&k);
int i;
fact[0]=1;
for (i=1; i<=n; i++)
{
fact[i]=fact[i-1]*i;
if (fact[i]>=MOD) fact[i]%=MOD;
}
cat=n/k+1; rest=n%k;
rez=(fact[rest]*lgput(fact[cat],rest))%MOD;
rez=(rez*fact[k-rest])%MOD;
rez=(rez*lgput(fact[cat-1],k-rest))%MOD;
printf("%lld\n",rez);
return 0;
}