Cod sursa(job #2330390)

Utilizator Dobricean_IoanDobricean Ionut Dobricean_Ioan Data 28 ianuarie 2019 12:19:41
Problema Kperm Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#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;
}