Cod sursa(job #1117275)

Utilizator s1mpMihai Alexandru s1mp Data 23 februarie 2014 12:46:34
Problema Dusman Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 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[i][b[k-1]] && !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;
}