Cod sursa(job #1117261)

Utilizator s1mpMihai Alexandru s1mp Data 23 februarie 2014 12:37:18
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 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;
}