Pagini recente » Cod sursa (job #2088606) | Cod sursa (job #2157185) | Cod sursa (job #1667953) | Cod sursa (job #2510303) | Cod sursa (job #1585309)
#include<fstream>
using namespace std;
ifstream fin( "kperm.in" ); ofstream fout( "kperm.out" );
typedef long long i64;
const int nmax = 5000;
const int mod = 666013;
i64 p[ nmax + 1 ];
i64 lgput( i64 b, int e ) {
i64 sol = 1;
while ( e > 0 ) {
if ( e & 1 ) {
sol = ( sol * b ) % mod;
}
e >>= 1;
b = ( b * b ) % mod;
}
return sol;
}
int main() {
int n, k, a, b, c, d;
fin >> n >> k;
a = n % k;
if ( a == 0 ) {
a = k;
}
b = k - a;
c = n / k + 1;
d = c - 1;
p[ 0 ] = 1;
for( int i = 1; i <= nmax; ++ i ) {
p[ i ] = (p[ i - 1 ] * i) % mod;
}
i64 ans = ( p[ a ] * lgput( p[ c ], a ) ) % mod;
ans *= ( p[ b ] * lgput( p[ d ], b ) ) % mod;
ans %= mod;
fout << ans << "\n";
fin.close();
fout.close();
return 0;
}