Pagini recente » Cod sursa (job #1139589) | Cod sursa (job #313825) | Cod sursa (job #3179847) | Cod sursa (job #3276775) | Cod sursa (job #2479901)
/**
* Worg
*/
#include <vector>
#include <bitset>
#include <fstream>
#include <cstdlib>
const int MAX_N = 1000 + 1;
std::ifstream fin("dusman.in"); std::ofstream fout("dusman.out");
std::bitset<MAX_N> enemies[MAX_N], used[MAX_N];
int curr_perm[MAX_N];
void print(int n) {
for (int i = 0; i < n; i++) {
fout << curr_perm[i] << " ";
}
fout << '\n';
exit(0);
}
void back(int step, const int& n, int& k) {
if (step == n) {
if (--k == 0) {
print(n);
}
}
for (int i = 1; i <= n; i++) {
if ((step == 0 || enemies[curr_perm[step - 1]][i] == false) && used[i] == 0) {
curr_perm[step] = i;
used[i] = true;
back(step + 1, n, k);
used[i] = false;
}
}
}
int main() {
int n, k, m; fin >> n >> k >> m;
for (int i = 0; i < m; i++) {
int x, y; fin >> x >> y;
enemies[x][y] = enemies[y][x] = true;
}
back(0, n, k);
return 0;
}