Pagini recente » Cod sursa (job #2671567) | Cod sursa (job #2448244) | Cod sursa (job #2068097) | Cod sursa (job #2522845) | Cod sursa (job #2047487)
#include <cstdio>
const int MAXN = 1e3;
bool v[MAXN + 1][MAXN + 1],
vis[MAXN + 1];
int p[MAXN + 1];
inline void bkt(int x, int &k, int n) {
if (x == n + 1) {
--k;
return;
}
for (int i = 1; i <= n && k; ++i) {
if (!vis[i] && !v[p[x - 1]][i]) {
p[x] = i;
vis[i] = 1;
bkt(x + 1, k, n);
vis[i] = 0;
}
}
}
int main() {
int n, m, k, x, y;
FILE *f = fopen("dusman.in", "r");
fscanf(f, "%d%d%d", &n, &k, &m);
for (int i = 0; i < m; ++i) {
fscanf(f, "%d%d", &x, &y);
v[x][y] = v[y][x] = 1;
}
fclose(f);
bkt(1, k, n);
f = fopen("dusman.out", "w");
for (int i = 1; i <= n; ++i) {
fprintf(f, "%d ", p[i]);
}
fprintf(f, "\n");
fclose(f);
return 0;
}