Pagini recente » Cod sursa (job #467984) | Cod sursa (job #1457228) | Cod sursa (job #1635624) | Cod sursa (job #1919690) | Cod sursa (job #1062065)
#include <fstream>
#define MOD 666013
using namespace std;
ifstream f("kperm.in");
ofstream g("kperm.out");
int Fact[5005];
int N,K;
int power_log(int n,int p)// afiseaza n la puterea p modulo mod, ridicarea se face in timp logaritmic
{
int sol=1;
while(p)
{
if(p%2==1)
sol=(sol*n)%MOD;
n=(n*n)%MOD;p=p/2;
}
return sol;
}
void Precalculate()
{
int i;
Fact[0]=1;
for(i=1;i<=5000;i++)
{
Fact[i]=Fact[i-1]*i;
Fact[i]%=MOD;
}
}
void Solve()
{
int rest=N%K;
long long result=0;
if(K%2==1)
{
result=power_log(Fact[N/K+1],rest)*power_log(Fact[N/K],K-rest);
result%=MOD;
result*=Fact[K-N%K]*Fact[N%K];
result%=MOD;
}
g<<result<<"\n";
}
int main()
{
f>>N>>K;
Precalculate();
Solve();
return 0;
}