Pagini recente » Statistici Dinu Vladimir (Vladimio) | Cod sursa (job #166918) | Cod sursa (job #3214744) | Cod sursa (job #128515) | Cod sursa (job #1994798)
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream in("kperm.in");
ofstream out("kperm.out");
const int NMAX = 5000;
const int MOD = 66013;
int fact[1 + NMAX];
int n, k;
void computef(){
fact[0] = 1;
for(int i = 1; i <= NMAX; i++)
fact[i] = (1LL * fact[i - 1] * i) % MOD;
}
int power(int n, int k, int answer){
if(k == 0)
return answer;
else
return power(n, k - 1, (1LL * answer * n) % MOD);
}
int main()
{
in >> n >> k;
in.close();
if((k % 2) == 0){
out << 0;
out.close();
exit(EXIT_SUCCESS);
}
computef();
if((n % k) == 0){
out << (1LL * fact[k] * power(fact[n / k], k, 1)) % MOD;
}else{
int rem = n % k;
int x = k - rem;
int sol;
sol = ((1LL * fact[rem] * fact[x]) % MOD);
sol = ((1LL * sol * power(fact[n / k + 1], rem, 1)) % MOD);
sol = ((1LL * sol * power(fact[n / k], x, 1)) % MOD);
out << sol;
}
out.close();
return 0;
}