Cod sursa(job #2478066)

Utilizator CristyXtremeSimion Cristian CristyXtreme Data 21 octombrie 2019 16:51:30
Problema Dusman Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream in("dusmani.in");
ofstream out("dusmani.out");

bool dusmanie[1000][1000];
int sol = 0;

void permutari(vector <int> &perm, vector <bool> &used, int n, int pos, int k) {
    if (pos == n) {
        sol++;
        if (sol == k) {
            for (auto &&el: perm) {
                out << el << ' ';
            }
            out << '\n';
            exit(0);
        }
        return;
    }
    for (int i = 1; i <= n; i++) {
        if (!used[i]) {
            if (pos > 0 && dusmanie[i][perm[pos - 1]])
                continue;
            perm[pos] = i;
            used[i] = true;
            permutari(perm, used, n, pos + 1, k);
            used[i] = false;
        }
    }
}

int main() {
    int n, k, m;
    in >> n >> k >> m;

    int a, b;
    for (int i = 0; i < m; i++) {
        in >> a >> b;
        dusmanie[a][b] = true;
        dusmanie[b][a] = true;
    }

    vector <int> perm(n);
    vector <bool> used(n, false);
    permutari(perm, used, n, 0, k);
    return 0;
}