Pagini recente » Cod sursa (job #2887595) | Cod sursa (job #1806457) | Cod sursa (job #2359604) | Cod sursa (job #2489556) | Cod sursa (job #1221990)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("kperm.in");
ofstream fout("kperm.out");
#define MOD 666013
int fact[5001];
int pow(int a, int p)
{
int rez=1;
while(p)
{
if(p&1)
rez=(1LL*rez*a)%MOD;
a=(1LL*a*a)%MOD;
p>>=1;
}
return rez;
}
int main()
{
int n, k, a, b, c, d, i, x, rez;
fin>>n>>k;
fact[0]=1;
for(i=1;i<=n;i++)
fact[i]=1LL*(fact[i-1]*i)%MOD;
if(k%2==0)
{
fout<<"0\n";
return 0;
}
a = n / k;
b = n % k;
if(b==0)
c=a;
else
c=a+1;
d=(k-n%k);
if(n%k==0)
{
fout<<(1LL*pow(fact[a], k)*fact[k])%MOD;
return 0;
}
fout<<(1LL*((1LL*pow(fact[c], b)*fact[b])%MOD)*((1LL*pow(fact[a], d)*fact[d])%MOD))%MOD;
}