Cod sursa(job #29231)

Utilizator mircovicMircea Traichioiu mircovic Data 8 martie 2007 20:02:31
Problema Kperm Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream.h>
using namespace std;
long nr,n,k,a,b,aa,bb,npk,npk1;
int main(){
	ifstream f("kperm.in");
	ofstream g("kperm.out");
	f>>n>>k;
	if(k%2){
		int i;
		b = n%k;
		a = k-b;
		long tmp = 1;
		for(i = 1; i <= n/k+1; i++){
			tmp*=i;
			tmp%=666013;
			if(i==a) aa=tmp;
			if(i==b) bb=tmp;
			if(i==n/k) npk=tmp;
			if(i==(n/k)+1) npk1=tmp;
		}
		npk=n/k;
		for(i = 2; i<=a; i++){
			npk*=npk;
			npk%=666013;
		}
		for(i = 2; i<=b; i++){
			npk1*=npk1;
			npk1%=666013;
		}
		nr=((aa*bb)%666013);
		nr*=npk;
		nr%=666013;
		nr*=npk1;
		nr%=666013;

	}
	g<<nr;
	f.close();
	g.close();
	return 0;
}