Cod sursa(job #486837)

Utilizator Teodor94Teodor Plop Teodor94 Data 22 septembrie 2010 21:20:17
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<cstdio>

const int N=1002;

bool a[N][N],gasit[N];
int n,k,m,sol[N];

void citeste()
{
	scanf("%d%d%d",&n,&k,&m);
	int x,y;
	for (int i=1;i<=m;++i)
	{
		scanf("%d%d",&x,&y);
		a[x][y]=a[y][x]=true;
	}
}

void afis()
{
	for (int i=1;i<=n;++i)
		printf("%d ",sol[i]);
	printf("\n");
}

void bkt(int p)
{
	if (k<0)
		return;
	if (p>n)
	{
		--k;
		if (k==0)
			afis();
		return;
	}
	for (int i=1;i<=n;++i)
		if (!gasit[i] && a[sol[p-1]][i]==0)
		{
			sol[p]=i;
			gasit[i]=true;
			bkt(p+1);
			gasit[i]=false;
		}
}

int main()
{
	freopen("dusman.in","r",stdin);
	freopen("dusman.out","w",stdout);
	citeste();
	bkt(1);
	return 0;
}