Pagini recente » Cod sursa (job #919150) | Cod sursa (job #2991097) | Cod sursa (job #2344918) | Cod sursa (job #783913) | Cod sursa (job #1331745)
#include <fstream>
using namespace std;
ifstream in("kperm.in");
ofstream out("kperm.out");
typedef long long i64;
const i64 mod= 666013;
const i64 nmax= 5000;
i64 f[nmax+1];
i64 lgpow( i64 x, i64 y ) {
i64 sol= 1;
while ( y>0 ) {
if ( y%2==1 ) {
sol= (sol*x)%mod;
--y;
}
x= (x*x)%mod;
y/= 2;
}
return sol;
}
int main( ) {
f[0]= 1;
for ( i64 i= 1; i<=nmax; ++i ) {
f[i]= (f[i-1]*i)%mod;
}
i64 n, k;
in>>n>>k;
i64 sol= 0;
if ( k%2==1 ) {
sol= (f[k-n%k]*f[n%k]%mod)*(lgpow(f[n/k+1], n%k)*lgpow(f[n/k], k-n%k)%mod)%mod;
}
out<<sol<<"\n";
return 0;
}