Cod sursa(job #884456)

Utilizator Theorytheo .c Theory Data 20 februarie 2013 22:22:44
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<fstream>
#include<cstdlib>

using namespace std;

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

const int Nmax = 1002;

int N; bool M[Nmax][Nmax];int K; int Enemies; int NumberSolution; bool uz[Nmax];int Sol[Nmax];

void Read() {

    fin >> N >> K >> Enemies;
    for(int i = 1; i <= Enemies; ++i) {
        int X, Y; fin >>X >> Y;
        M[X][Y] = M[Y][X] = true;

    }
}

void Print(){

    for(int i = 1; i <= N ;++i)
        fout << Sol[i] <<" ";
}

void Back(int k){

    if(k - 1 == N){

        if(++NumberSolution == K){
            Print(); exit(0);
        }
    }
    else{
        for(int i = 1; i <= N; ++i)

            if(!uz[i] && !M[Sol[k - 1]][i] && !M[i][Sol[k - 1]]){

                Sol[k] = i; uz[i] = true;
                Back(k + 1);
                uz[i] = false;
            }
    }
}
int main(){

    Read(); Back(1);

    return 0;
}