Cod sursa(job #26324)

Utilizator crusRus Cristian crus Data 5 martie 2007 14:29:43
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#define input "kperm.in"
#define output "kperm.out"
#define rest 666013
long n,k,max,ind,i;
long long sol=1;
long 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){
	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;
        } else sol=0;
}
int main()
{
	citire();
	solve();
	afisare();
	return 0;
}