Cod sursa(job #1661595)

Utilizator mihai.constantinConstantin Mihai mihai.constantin Data 23 martie 2016 23:40:14
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;

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

const int N_max = 1002;

bool d[N_max][N_max];

int sol[N_max];

bool c[N_max];

int NR;

int N, M, K;

void read()
{
    int i, A, B;

    in >> N >> K >> M;

    for(i = 1; i <= M; i++)
    {
        in >> A >> B;

        d[A][B] = d[B][A] = true;
    }
}

void afisare()
{
    int i;

    NR++;

    if(NR == K)
    {
        for(i = 1; i <= N; i++) out << sol[i] << " ";

        exit(0);
    }
}

void bkt(int p)
{
    if(p - 1 == N) afisare();
    else
        for(int i = 1; i <= N; i++)
            if( !c[i] && !d[sol[p - 1]][i] )
            {
                c[i] = true;

                sol[p] = i;
                bkt(p + 1);

                c[i] = false;
            }
}

int main()
{
    read();

    bkt(1);

    return 0;
}