Cod sursa(job #1117234)

Utilizator s1mpMihai Alexandru s1mp Data 23 februarie 2014 12:14:24
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<iostream>
#include<fstream>

#define Nmax 1003

using namespace std;

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

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

void BK( int k ) {
	if ( k == N + 1 ) {
		numarOrd ++;
		if ( numarOrd == K ) {
			for ( int i = 1; i <= N; i ++ ) {
				g << b[i] << " ";
			}
			return;
		}
	} else {
		for( int i = 1; i <= N; i ++ ) {
			if ( X[i][b[k-1]] == 0 && viz[i] == 0 ) {
				b[k] = i;
				viz[i] = 1;
				BK( k + 1 );
				viz[i] = 0;
			}
		}
	}
}

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