Pagini recente » Cod sursa (job #2402853) | Cod sursa (job #2320271) | Cod sursa (job #2330058) | Cod sursa (job #2707358) | Cod sursa (job #1743382)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream cin("dusman.in");
ofstream cout("dusman.out");
const int MAXN = 1000;
bool edge[1 + MAXN][1 + MAXN], seen[1 + MAXN];
int answer[1 + MAXN];
int n, k;
void Backtracking(int level) {
if (level == n + 1) {
k--;
return;
}
for (int i = 1; i <= n && k != 0; i++)
if (!seen[i] && !edge[answer[level-1]][i]) {
seen[i] = true;
answer[level] = i;
Backtracking(level + 1);
seen[i] = false;
}
}
int main() {
int m;
cin >> n >> k >> m;
for (int i = 1; i <= m; i++) {
int x, y;
cin >> x >> y;
edge[x][y] = edge[y][x] = true;
}
Backtracking(1);
for (int i = 1; i <= n; i++)
cout << answer[i] << " ";
return 0;
}