Cod sursa(job #466262)

Utilizator mihai995mihai995 mihai995 Data 26 iunie 2010 12:39:27
Problema Permutari2 Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2010, gimnaziu si clasa a IX-a, Ziua 2 Marime 0.6 kb
#include <fstream>
using namespace std;

bool use[1<<9];
int v[1<<9],x,y,nr,val[1<<9];

ifstream in("permutari2.in");
ofstream out("permutari2.out");

void verif()
{
	int k=0,m=0;
	for (int i=1;i<=x;i++)
	{
		if (m<v[i])
			m=v[i];
		k+=m==i;
	}
	val[k]++;
}

void bkt(int p)
{
	if (p==x+1)
	{
		verif();
		if (nr>=10007)
			nr-=10007;
	}
	for (int i=1;i<=x;i++)
		if (!use[i])
		{
			v[p]=i;
			use[i]=true;
			bkt(p+1);
			use[i]=false;
		}
}

void gen(int i)
{
	nr=0;
	x=i;
	bkt(1);
}

int main()
{
	int n,k;
	in>>n>>k;
	gen(n);
	out<<val[k];
	return 0;
}