Cod sursa(job #127181)

Utilizator slayer4uVictor Popescu slayer4u Data 23 ianuarie 2008 16:05:50
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>

long st[1001], used[1001], x[1001][1001], a, b, i, j, n, m, kk, kkk, found;

void back(int k)
{
	if (k == n + 1)
	{
		kkk ++;
		if (kkk == kk)
		{
			for (int c = 1; c <= n; c ++)
				printf("%ld ", st[c]);
			printf("\n");
			found = 1;
		}
	}
	else
	{
		for (int c = 1; c <= n && !found; c ++)
		{
			if (!used[c] && !x[c][st[k - 1]])
			{
				used[c] = 1;
				st[k] = c;
				back(k + 1);
				used[c] = 0;
			}
		}
	}
}

int main()
{
	freopen ("dusman.in", "rt", stdin);
	freopen ("dusman.out", "wt", stdout);
	
	scanf("%ld %ld %ld", &n, &kk, &m);
	
	for (i = 1; i <= m; i ++)
	{
		scanf("%ld %ld", &a, &b);
		x[a][b] = x[b][a] = 1;
	}
	
	back(1);
	
	return 0;
}