Pagini recente » Cod sursa (job #275130) | Cod sursa (job #2769761) | Cod sursa (job #2204263) | Cod sursa (job #625937) | Cod sursa (job #1809010)
#include<fstream>
#define MOD 666013
using namespace std;
ifstream fin("kperm.in");
ofstream fout("kperm.out");
long long f[5005];
int n, k;
long long lgput( long long x, long long p ){
long long r = 1;
while( p != 0 ){
if( p % 2 == 1 ){
r = r * x % MOD;
}
x = x * x % MOD;
p /= 2;
}
return r % MOD;
}
int main(){
fin >> n >> k;
f[0] = 1;
for( int i = 1; i <= n; i++ ){
f[i] = f[i - 1] * i % MOD;
}
if( k % 2 == 0 ){
fout << 0;
return 0;
}
if( n % k == 0 ){
fout << f[k] * lgput( f[n / k], k ) % MOD;
}else{
long long R = n % k;
fout << f[R] * f[k - R] % MOD * lgput( f[n / k], k - R ) % MOD * lgput( f[n / k + 1], R ) % MOD;
}
return 0;
}