Cod sursa(job #26024)

Utilizator crusRus Cristian crus Data 4 martie 2007 23:53:42
Problema Kperm Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
#define input "kperm.in"
#define output "kperm.out"
#define rest 666013
long long n,k,max,ind,i;
long long sol=1;
long fact[5001];
void citire()
{
	FILE *fin;
	fin=fopen(input,"r");
	fscanf(fin,"%ld %ld",&n,&k);
	fclose(fin);
}
void afisare()
{
	FILE *fout;
	fout=fopen(output,"w");
	fprintf(fout,"%ld",sol);
	fclose(fout);
}
void solve()
{
	if (k%2==0) sol=0;
	   else {fact[0]=1;
	for (i=1;i<=n;i++)
		fact[i]=(fact[i-1]*i)%rest;	
	sol=(fact[n%k]*fact[k-(n%k)])%rest;
	max=(n%k);
	ind=int(n/k);
	for (i=0;i<max;i++)
		sol=(sol*fact[ind+1])%rest;
	for (i=max;i<k;i++)
		sol=(sol*fact[ind])%rest;}
}
int main()
{
	citire();
	solve();
	afisare();
	return 0;
}