Cod sursa(job #1117248)

Utilizator s1mpMihai Alexandru s1mp Data 23 februarie 2014 12:30:20
Problema Dusman Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 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];

void BK( int k ) {
	if ( K < 0 ) {
		return;
	} else if ( k == N + 1 ) {
		-- K;
		if ( K == 0 ) {
			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]] && !viz[i] ) {
				b[k] = i;
				viz[i] = 1;
				BK( k + 1 );
				viz[i] = 0;
			}
		}
	}
}

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