Pagini recente » Cod sursa (job #2063854) | Cod sursa (job #1404263) | Cod sursa (job #108786) | Cod sursa (job #2097835) | Cod sursa (job #458954)
Cod sursa(job #458954)
#include <cstdio>
#include <algorithm>
#define nmax 1005
using namespace std;
int sol, K, n, m, deg [nmax], V[nmax], G[nmax][5];
bool viz [nmax];
inline bool check (int x, int y) {
int i;
for (i = 1; i <= deg[y]; i++)
if (G[y][i] == x)
return 0;
return 1;
}
inline void back (int k) {
int i;
if (k == n + 1) {
++sol;
if (sol == K) for (i = 1; i <= n; i++) printf ("%d ", V[i]);
}
else {
for (i = 1; i <= n; i++)
if (!viz[i] && check (V[k - 1], i)) {
viz [i] = 1;
V[k] = i;
back (k + 1);
viz [i] = 0;
}
}
}
int main () {
int i, a, b;
freopen ("dusman.in", "r", stdin);
freopen ("dusman.out", "w", stdout);
scanf ("%d%d%d\n", &n, &K, &m);
for (i = 1; i <= n; i++) V[i] = i;
V[0] = V[n + 1] = 100000;
for (i = 1; i <= m; i++) {
scanf ("%d%d\n", &a, &b);
G[a][++deg[a]] = b;
G[b][++deg[b]] = a;
}
back (1);
}