Cod sursa(job #1495315)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 2 octombrie 2015 21:51:31
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <cstdio>
#include <bitset>

#define DIM 10010
using namespace std;

int N, K, M, X, Y, nr, ok, Vector[DIM];
bitset <DIM> Marked[DIM], Used;

inline void solution(){
    for(int i = 1; i <= N; i ++)
        printf("%d ", Vector[i]);
    return;
}

inline void backTrack(int length){

    if(length > N){
        nr ++;

        if(nr == K)
            solution();

        return;
    }

    for(int i = 1; i <= N; i ++){
        if(!Used[i] && !Marked[i][Vector[length-1]] && nr < K){
            Used[i] = 1;
            Vector[length] = i;

            backTrack(length + 1);

            Vector[length] = 0;
            Used[i] = 0;
        }

    }

    return;
}

int main(){

    freopen("dusman.in" ,"r", stdin );
    freopen("dusman.out","w", stdout);

    scanf("%d %d %d", &N, &K, &M);
    for(int i = 1; i <= M; i ++){
        scanf("%d %d", &X, &Y);
        Marked[X][Y] = 1;
        Marked[Y][X] = 1;
    }

    backTrack(1);

    fclose(stdin );
    fclose(stdout);

    return 0;
}