Cod sursa(job #1180336)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 30 aprilie 2014 15:30:12
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream>
using namespace std;

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

const int Nmax = 1005;

int N, M, K;
int X[Nmax][Nmax], b[Nmax], viz[Nmax];

void afis() {
    for ( int i = 1; i <= N; ++ i ) {
        g << b[i] << " ";
    }
}

void BK( int k ) {
    if ( K < 0 ) {
        exit(0);
    } else if ( k == N + 1 ) {
        -- K;
        if ( K == 0 ) {
            afis();
            exit(0);
        }
    } else {
        for( int i = 1; i <= N; ++ i ) {
            if ( !X[b[k-1]][i] && !viz[i] ) {
                b[k] = i;
                viz[i] = 1;
                BK( k + 1 );
                viz[i] = 0;
            }
        }
    }
}

int main() {
    int a, b;
    f >> N >> K >> M;
    while( M-- ) {
        f >> a >> b;
        X[a][b] = X[b][a] = 1;
    }
    BK(1);
    f.close();
    g.close();
    return 0;
}