Cod sursa(job #771589)

Utilizator SteveStefan Eniceicu Steve Data 26 iulie 2012 14:47:06
Problema Sandokan Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

using namespace std;

#define mod 2000003

int main () {
	ifstream fin ("sandokan.in");
	ofstream fout ("sandokan.out");
	int N, K;
	long long sol = 1, dog = 1;
	int lol;
	fin >> N >> K;
	fin.close ();
	N--;
	lol = N % (K - 1);
	for (int i = 2; i <= N; i++)
	{
		sol = (sol * i) % mod;
	}
	for (int i = 2; i <= lol; i++)
	{
		dog = (dog * i) % mod;
	}
	int aux = dog;
	for (int i = 1; i <= mod - 3; i++)
	{
		dog = (aux * dog) % mod;
	}
	sol = (sol * dog) % mod;
	dog = 1;
	lol = N - lol;
	for (int i = 2; i <= lol; i++)
	{
		dog = (dog * i) % mod;
	}
	aux = dog;
	for (int i = 1; i <= mod - 3; i++)
	{
		dog = (dog * aux) % mod;
	}
	sol = (sol * dog) % mod;
	fout << sol;
	fout.close ();
	return 0;
}