Cod sursa(job #371743)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 6 decembrie 2009 18:41:55
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>

int n,v[1001],s[1001],d[4][1001],k,cnt;

void back(int j)
{
	int i=0,a;
	if (j<=n)
	for (i=1;i<n+1;i++)
		if (((v[i]==0)&&(d[1][s[j-1]]!=i)&&(d[2][s[j-1]]!=i)&&(d[3][s[j-1]]!=i))||(j==1))
		{
			v[i]=1;
			s[j]=i;
			if (j<n) back(j+1);
			else
			{
				++cnt;
				if (cnt==k)
				{
					for (a=1;a<n+1;a++) printf("%d ",s[a]);
					printf("\n");
				}
			}
			v[i]=0;
		}
}

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