Cod sursa(job #25195)

Utilizator skyelHighScore skyel Data 4 martie 2007 11:20:12
Problema Kperm Scor 10
Compilator cpp Status done
Runda preONI 2007, Runda 3, Clasele 11-12 Marime 0.81 kb
#include<fstream.h>
#define mod 666013
#define input "kperm.in"
#define output "kperm.out"
int a[5000],uzt[5000],n,b;
long h;


int check()
	{


	int i,j,s;
	for(i=0;i<=n-b;i++)
		{
		s=0;
		for(j=i;j<i+b;j++)
			s+=a[j];
		if(s%b!=0)
			return 0;
		}
	return 1;

	}

int perm(int k)
	{

	int i;
	if(k==n)
		{
		if(check())
			{
			h++;

			}
		}
	else
		for(i=1;i<=n;i++)
			{
			if(uzt[i]==0)
				{
				uzt[i]++;
				a[k]=i;
				perm(k+1);
				uzt[i]--;
				}
			}
	return 0;
	}

int main()
	{
	int i;
	ifstream fin(input);
	ofstream fout(output);
	fin>>n>>b;
	if(b%2==0)
			fout<<"0";


	else
		if(n==b)
			{
			h=1;
			for(i=2;i<=n;i++)
				{
				h*=i;
				h=h%mod;
				}
			fout<<h;
			}
		else
			{
			perm(0);
			fout<<h;
			}
	return 0;
	}