Cod sursa(job #550511)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 9 martie 2011 18:13:14
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
#include<stdlib.h>
#define maxN 1005
FILE*f=fopen("dusman.in","r");
FILE*g=fopen("dusman.out","w");

int N,K,M,x,y,i,X[maxN];
char A[maxN][maxN],Viz[maxN];

void bck ( int niv ){
	if ( niv == N + 1 ){
		--K;
		if ( !K ){
			for ( i = 1 ; i <= N ; ++i ){
				fprintf(g,"%d ",X[i]);
			}
			fclose(f);
			fclose(g);
			exit(0);
		}
		return ;
	}
	
	for ( int i = 1 ; i <= N ; ++i ){
		if ( A[ i ][ X[niv-1] ] || Viz[i] )	continue;
		X[niv] = i;
		Viz[i] = 1;
		bck( niv + 1 );
		Viz[i] = 0;
	}
	
	
}

int main () {
	fscanf(f,"%d %d %d",&N,&K,&M);
	for ( i = 1 ; i <= M ; ++i ){
		fscanf(f,"%d %d",&x,&y);
		A[x][y] = A[y][x] = 1;
	}
	
	bck(1);
	
	return 0;
}