Cod sursa(job #1690733)

Utilizator GeorginskyGeorge Georginsky Data 15 aprilie 2016 16:22:03
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
#define NMAX 1001
using namespace std;
ifstream in("dusman.in");
ofstream out("dusman.out");
int n, m, k, v[NMAX], a[NMAX][NMAX], f[NMAX], nr;

void read(){
    in>>n>>k>>m;
    int x, y;
    for(int i=1; i<=m; i++){
        in>>x>>y;
        a[x][y]=1;
        a[y][x]=1;
    }
}

void print(){
    for(int i=1; i<=n; i++)out<<v[i]<<" ";
}

void backtrack(int x){
    if(k<0){
        return;
    }
    if(x>n){
        k--;
        if(k==0)print();
        return;
    }
    for(int i=1; i<=n; i++){
        if(f[i]==0&&a[v[x-1]][i]==0){
            v[x]=i;
            f[i]=1;
            backtrack(x+1);
            f[i]=0;
        }
    }
}

int main(){
    read();
    backtrack(1);
    return 0;
}