Pagini recente » Cod sursa (job #2056770) | Cod sursa (job #1181470) | Cod sursa (job #2092160) | Cod sursa (job #1694469) | Cod sursa (job #2985587)
#include <fstream>
using namespace std;
ifstream fin("dusman.in");
ofstream fout("dusman.out");
const int DIM = 1010;
int n, k, m, x, y;
int arr[DIM];
bool a[DIM][DIM], f[DIM], hasPrinted;
inline bool check(int step) {
if (step == 1)
return true;
return !a[arr[step]][arr[step - 1]];
}
void backtrack(int step) {
if (step == n + 1) {
k--;
if (k == 0) {
for (int i = 1; i <= n; i++)
fout << arr[i] << ' ';
hasPrinted = true;
}
} else {
for (int i = 1; i <= n; i++) {
if (!f[i]) {
arr[step] = i;
f[i] = true;
if (check(step))
backtrack(step + 1);
if (hasPrinted) return;
f[i] = false;
}
}
}
}
int main() {
fin >> n >> k >> m;
for (int i = 1; i <= m; i++) {
fin >> x >> y;
a[x][y] = a[y][x] = true;
}
backtrack(1);
return 0;
}