Pagini recente » Cod sursa (job #816920) | Cod sursa (job #2544567) | Cod sursa (job #2655339) | Cod sursa (job #1423409) | Cod sursa (job #2212296)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("kperm.in");
ofstream fout("kperm.out");
typedef long long ll;
const ll MOD=666013;
ll n,k;
ll fact(ll x)
{
ll ans=1,i;
for(i=1;i<=x;i++)
ans=(ll)ans*i%MOD;
return ans;
}
ll expow(ll a,ll b)
{
ll ans=1;
while(b)
{
if(b%2==1)
ans=(ll)ans*a%MOD;
a=(ll)a*a%MOD;
b/=2;
}
return ans;
}
int main()
{
fin>>n>>k;
if(n%k==0)
{
ll ans=1;
ans*=fact(k);
ans*=expow(fact(n/k),k);
ans%=MOD;
fout<<ans<<"\n";
}
else
{
ll rest=n%k;
ll ans=1;
ans*=fact(rest);
ans*=expow(fact(n/k+1),rest);
ans%=MOD;
ans*=fact(k-rest);
ans%=MOD;
ans*=expow(fact(n/k),k-rest);
ans%=MOD;
fout<<ans<<"\n";
}
return 0;
}
/**
8
1 2 7 3 4 8 5 6
**/