Cod sursa(job #544869)

Utilizator CyberneticLordMunteanu Valentin CyberneticLord Data 2 martie 2011 12:29:31
Problema Dusman Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<cstdio>
using namespace std;
int i,j,n,k,m,d[1001][1001],v[1001],r,a,b,viz[1001],t;

void afisare(int r)
{
  for(int i=1;i<=r;i++) printf("%d ",v[i]);
  printf("\n");
}

int valid(int r)
{
	if(d[v[r]][v[r-1]]==1 || viz[v[r]]==1 ) return 0;
	return 1;
}

int solutie(int r)
{
	if(r==n) return 1;
	return 0;	
}

void back()
{
	r=1;
	v[r]=0;
	while(r>=1) 
       if(v[r]<n)
	   {
		   v[r]++;
		   
		   if(valid(r))
		   {
			   viz[v[r]]=1;
			   if(solutie(r)) {t++;
						      if(t==k) {afisare(r);return ;}
								viz[v[r]] = 0;
			                  }
		   
			else v[++r]=0;
	   }
	   }
	   else 
	   {r--;
	   viz[v[r]] = 0;
	   }
}	
	
	
	
	
	
	
	
	


int main()
{
	
	freopen("dusman.in","r",stdin);
	freopen("dusman.out","w",stdout);
	scanf("%d%d%d",&n,&k,&m);
	for(i=1;i<=m;i++) {  scanf("%d%d",&a,&b); d[a][b]=1; d[b][a]=1; }
	
    back();
	
	
	return 0;
}