Cod sursa(job #1570910)

Utilizator depevladVlad Dumitru-Popescu depevlad Data 16 ianuarie 2016 22:07:06
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>

using namespace std;

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

const int MAX_N = 1000;

bool A[1 + MAX_N][1 + MAX_N];
int V[1 + MAX_N];
bool U[1 + MAX_N];
int n, m, k, permind;

void bkt(int lev) {
    if(permind >= k) {
        return;
    }
    if(lev == n + 1) {
        permind++;
        if(permind == k) {
            for(int i = 1; i <= n; i++) {
                out << V[i] << ' ';
            }
        }
        return;
    }
    for(int i = 1; i <= n; i++) {
        if(U[i] == false && A[V[lev - 1]][i] == false) {
            U[i] = true;
            V[lev] = i;
            bkt(lev + 1);
            U[i] = false;
        }
    }
}

int main() {
    int i, a, b;

    in >> n >> k >> m;
    for(i = 1; i <= m; i++) {
        in >> a >> b;
        A[a][b] = A[b][a] = true;
    }

    bkt(1);
    return 0;
}