Cod sursa(job #1167694)

Utilizator dr_personalityEftime Andrei Horatiu dr_personality Data 5 aprilie 2014 18:55:01
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<fstream>
using namespace std;
ifstream in("kperm.in");
ofstream out("kperm.out");

const long long mod = 666013, nmax = 5006;
long long fact[nmax], n, k, rasp;

void mfact(){
	fact[0] = 1;
	for(long long i = 1; i<nmax; i++)
		fact[i] = (fact[i-1] * i) % mod;
}

long long xlay(long long x, long long y)
{
	long long p = 1;
	while(y!=0)
	{
		if(y%2==1)
		{
			p = (p * x)%mod;
			y--;
		}
		x = (x * x)%mod;
		y = y / 2;
	}

	return p;
}

int main(){
	int player_unu=0;

	mfact();

	in>>n>>k;
	if(k%2==1)
	{
		rasp = (fact[k - n % k] * fact[n % k] % mod) * (xlay(fact[n/k+1], n%k) * xlay(fact[n/k], k-n%k) % mod) % mod;
	}

	out<<rasp<<'\n';
	return player_unu;
}