Cod sursa(job #116354)

Utilizator hadesgamesTache Alexandru hadesgames Data 18 decembrie 2007 14:39:36
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <stdio.h>
int b[10000],c[10000],a[1002][1002],n,k,nr,m;
FILE *in,*out;
void back(int x)
{
	int i;
	if (nr<k)
	{
		if (x==n+1)
		{
			nr++;
			if (nr==k)
			{
				for (i=1;i<=n;i++)
					fprintf(out,"%d ",c[i]);
				fprintf(out,"\n");
				
			}
		
		}
		else
		{
			for (i=1;i<=n;i++)
				if (!b[i]&&!a[i][c[x-1]])
				{
					b[i]=1;
					c[x]=i;
					back(x+1);
					b[i]=0;
				}	
		}
	}
	
}
int main()
{
	int i,x,y;

	in=fopen("dusman.in","r");
	out=fopen("dusman.out","w");
	fscanf(in,"%d%d%d",&n,&k,&m);
	for (i=1;i<=m;i++)
	{
		fscanf(in,"%d%d",&x,&y);
		a[x][y]=1;
		a[y][x]=1;
	}
	nr=0;
	back(1);
    fclose(in);
	fclose(out);
	return 0;
}