Cod sursa(job #116412)

Utilizator marius135Dumitran Adrian Marius marius135 Data 18 decembrie 2007 16:16:52
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#include <stdlib.h>

int n,m,k,dus[1001][1001],sel[1001],sol[1001],nr_perm = 0;



void back(int x)
{
	if (x == n + 1)
	{
			nr_perm ++;
		if (nr_perm == k)
		{
			for (int i = 1;i <= n;i ++)
			printf("%d ",sol[i]);
			exit(0);
		}
	
		return;
	}
	else
	{
		for (int i = 1;i <= n; i++)
		
		{
			if (sel[i] == 0 && dus[i][sol[x-1]]==0)
			{
				sel[i] = 1;
				sol[x] = i;
				back(x+1);
				sel[i] = 0;
				sol[x] = 0;
				
			}
			
		}
		
	}
	
	
}


int main ()
{
	freopen("dusman.in","r",stdin);
	freopen("dusman.out","w",stdout);
	
	scanf("%d %d %d",&n,&k,&m);
	
	for (int i = 1;i <= m; i++)
	{
		int a,b;
		scanf("%d %d",&a,&b);
		dus[a][b] = 1;
		dus[b][a] = 1;
	}
	
	back (1);
	
	return 0;
}