Pagini recente » Cod sursa (job #83976) | Cod sursa (job #171175) | Cod sursa (job #16192) | Cod sursa (job #3245215) | Cod sursa (job #2003577)
#include <bits/stdc++.h>
#define MOD 666013
#define MAXN 5000
int fact[MAXN + 1];
int fr[MAXN + 1];
inline int check(int n, int k, int i) {
if(i == 0)
return n / k;
return (n - i) / k + 1;
}
int main() {
FILE *fi, *fout;
int i, n, k;
fi = fopen("kperm.in" ,"r");
fout = fopen("kperm.out" ,"w");
fscanf(fi,"%d %d " ,&n,&k);
fact[0] = 1;
for(i = 1; i <= n; i++)
fact[i] = (1LL * fact[i - 1] * i) % MOD;
int ans = 1;
for(i = 0; i < k; i++) {
ans = (1LL * ans * fact[check(n, k, i)]) % MOD;
fr[check(n, k, i)]++;
}
for(i = 0; i <= n; i++)
ans = (1LL * ans * fact[fr[i]]) % MOD;
fprintf(fout,"%d" ,ans);
fclose(fi);
fclose(fout);
return 0;
}