Cod sursa(job #885086)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 21 februarie 2013 17:10:25
Problema Kperm Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>

#define maxdim 5005
#define mod 666013

FILE*f=fopen("kperm.in","r");
FILE*g=fopen("kperm.out","w");

int n,k;
int fr[maxdim];

int main () {
	
	fscanf(f,"%d %d",&n,&k);
	int rest = 0;
	for ( int i = 1 ; i <= n ; ++i ){
		++rest; if ( rest == k )	rest = 0;
		++fr[rest];
	}
	
	int maxfr = 0,nr = 0;
	for ( int i = 0 ; i < k ; ++i ){
		if ( fr[i] > maxfr ){
			maxfr = fr[i]; nr = 1;
		}
		else{
			if ( fr[i] == maxfr )	++nr;
		}
	}
	
	int sol = 1;
	for ( int i = 1 ; i <= nr ; ++i ){
		sol = (1LL*sol*i*maxfr)%mod;
	}
	for ( int i = 1 ; i <= k-nr ; ++i ){
		sol = (1LL*sol*i*(maxfr-1))%mod;
	}
	
	fprintf(g,"%d\n",sol);
	
	fclose(f);
	fclose(g);
	
	return 0;
}