Pagini recente » Cod sursa (job #712809) | Cod sursa (job #2570745) | Cod sursa (job #113413) | Cod sursa (job #1301484) | Cod sursa (job #2003575)
#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 + (n % k >= i);
}
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;
}