Cod sursa(job #451509)

Utilizator andrei.dAndrei Diaconeasa andrei.d Data 9 mai 2010 17:40:14
Problema Kperm Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <cstdio>

#define file_in "kperm.in"
#define file_out "kperm.out"

int n,K,nr,p[5010],viz[5010];

void citire()
{
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d %d", &n, &K);
}

void back(int k)
{
	if (k==n+1)
	{
		int suma,ok=0,i,j;
		for (i=1;i<=n-K &&!ok;++i)
		{
			 for (j=i;j<=i+K;++j)
				  suma+=p[j];
			 if (suma%K!=0)
				 ok=1;
		}
		if (!ok) nr++;
		if (nr>=666013) nr-=666013;
	}
	else
		for (int i=1;i<=n;++i)
			 if (!viz[i])
			 {
				 viz[i]=1;
				 p[k]=i;
				 back(k+1);
				 viz[i]=0;
			 }
}


void solve()
{
	
	nr=0;
	back(1);
	
	printf("%d\n", nr);
}

int main()
{
	citire();
	solve();
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
	
}