Pagini recente » Cod sursa (job #3232642) | Cod sursa (job #1606392) | Cod sursa (job #2277631) | Cod sursa (job #1943998) | Cod sursa (job #2330390)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("kperm.in");
ofstream fout ("kperm.out");
const int Dim = 5001,mod = 666013;
int Fact[Dim],n,k;
long long Pow( int a, int pow);
int main() {
fin >> n >> k;
Fact[0] = 1;
int cat = n / k;
int r = n % k;
for ( int i = 1;i <= n; ++i)
Fact[i] = (1LL * Fact[i-1] * i) % mod;
long long sol = (1LL * Fact[r] * Fact[k-r]) % mod;
sol = (1LL * sol * Pow(Fact[cat],k-r)) % mod;
sol = (1LL * sol * Pow(Fact[cat+1],r)) % mod;
fout << sol;
}
long long Pow( int a, int pow) {
if ( pow == 0)
return 1;
long long rez = Pow(a,pow/2);
rez = (1LL * rez * rez) % mod;
if ( pow & 1)
return (1LL * rez * a) % mod;
else
return (1LL * rez) % mod;
}