Cod sursa(job #551807)

Utilizator KoniacDocea Andrei Koniac Data 11 martie 2011 10:02:23
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 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,x,s[1001],viz[1001];

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