Cod sursa(job #204399)

Utilizator andrei-alphaAndrei-Bogdan Antonescu andrei-alpha Data 23 august 2008 16:11:31
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
using namespace std;

#include <cstdio>
#include <cstdlib>

#define IN "dusman.in"
#define OUT "dusman.out"
#define FOR(i,a,b) for(int i=a;i<=b;++i)
#define N_MAX 1<<10

int N,K,M;
bool A[N_MAX][N_MAX];
bool viz[N_MAX];
int stv[N_MAX];

void scan()
{
	int x,y;
	freopen(IN, "r",stdin);
	freopen(OUT, "w",stdout);
	scanf("%d%d%d\n", &N,&K,&M);
	FOR(i,1,M)
		scanf("%d%d\n", &x,&y),
		A[x][y] = A[y][x] = 1;
}

void print();
void back(int niv)
{
	if(niv == N+1)
	{
		--K;
		if(!K)
			print();
		return;
	}	
	FOR(i,1,N)
		if(!viz[i] && !A[ stv[niv-1] ][ i ])
		{
			stv[niv] = i;
			viz[i] = true;
			back(niv+1);
			viz[i] = false;
		}	
}

void print()
{
	FOR(i,1,N)
		printf("%d ",stv[i]);
	exit(0);
}

int main()
{
	scan();
	back(1);
	return 0;
}