Cod sursa(job #551800)

Utilizator KoniacDocea Andrei Koniac Data 11 martie 2011 09:46:35
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<stdio.h>

FILE * f = fopen("dusman.in","r");
FILE * g = fopen("dusman.out","w");
int n,m,k,nr1,nr2,a[1001][1001],ok,lex,s[1001],viz[1001],i;

void back(int nr){
	if(ok) 
		return ;
	if(nr>n){
		++lex;
		if(lex==k){
			for( i=1;i<=n;++i)
				fprintf(g,"%d ",s[i]);
			ok=1;
		}
	}
	
	for( i=1;i<=n;++i){
		if(!viz[i]){
			s[nr]=i;
			viz[i]=1;
			if(a[s[nr]][s[nr-1]]==0)
				back(nr+1);
			viz[i]=0;
		}
		
	}
	
}
int main() {
	fscanf(f,"%d%d%d",&n,&k,&m);
	for( i=1;i<=m;++i){
		fscanf(f,"%d%d",&nr1,&nr2);
		a[nr1][nr2]=1;
		a[nr2][nr1]=1;
	}
	
	back(1);
	
	fclose(g);
	fclose(f);
	return 0;
}