Pagini recente » Cod sursa (job #1127654) | Cod sursa (job #1057787) | Cod sursa (job #670713) | Cod sursa (job #1686942) | Cod sursa (job #1577175)
#include <fstream>
using namespace std;
ifstream f("kperm.in");
ofstream g("kperm.out");
const int MOD = 666013;
int n, k;
int fact(int n) {
int ret = 1;
for(int i = 2; i <= n; ++i) {
ret = (1LL * ret * i) % MOD;
}
return ret;
}
int expo(int a, int b) {
int ret = 1;
while(b) {
if(b % 2) {
ret = (1LL * ret * a) % MOD;
}
a = (1LL * a * a) % MOD;
b /= 2;
}
return ret;
}
int main() {
f >> n >> k;
int ans;
if(k % 2 == 0) {
ans = 0;
}
else {
ans = (1LL * fact(n % k) * fact(k - (n % k))) % MOD;
ans = (1LL * ans * expo(fact(n / k + 1), n % k)) % MOD;
ans = (1LL * ans * expo(fact(n / k), k - (n % k))) % MOD;
}
g << ans << "\n";
return 0;
}