Cod sursa(job #403470)

Utilizator lalasCont de teste lalas Data 24 februarie 2010 22:52:19
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<cstdio>

const int maxn = 1000;

int i , j , k , perm[maxn] , n , a , b , m , cnt;
bool taken[maxn];
bool dusman[maxn][maxn];

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

void back(int p)
{
	if ( p == n + 1 )
	{	
		cnt ++;
		if ( cnt == k )
			print();
	}
	
	else
	{
		int i;
		for( i = 1 ; i <= n ; ++i ) {
			if ( taken[i] == 0 && dusman[i][perm[p - 1]] == 0) {
				taken[i] = 1;
				perm[p] = i;
				back (p + 1);
				taken[i] = 0;
			}
		}
	}
}

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

	
	back(1);
	
return 0;
}