Cod sursa(job #1743382)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 18 august 2016 02:56:34
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#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;
}