Cod sursa(job #117330)

Utilizator FlorianFlorian Marcu Florian Data 21 decembrie 2007 10:32:13
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<stdio.h>
FILE*f=fopen("dusman.in","r");
FILE*g=fopen("dusman.out","w");
int a[1003][6],viz[1005], sol;
int n,k,m, st[1003];
void read()
	{
	int x,y;
	fscanf(f,"%d %d %d",&n,&k,&m);
	for(int i=1;i<=m;++i)
		{
		fscanf(f,"%d %d",&x,&y);
		a[x][++a[x][0]]=y;
		a[y][++a[y][0]]=x;
		}
	}
void afisare()
	{
	for(int i=1;i<=n;++i) fprintf(g,"%d ",st[i]);
	}
int cauta(int x, int linie)
	{
	for(int i=1;i<=a[linie][0];++i)
		if(a[linie][i]==x) return 1;
	return 0;
	}
void bkt(int p)
	{
	if(p==n+1)
		{
		sol++;
		if(sol==k) afisare();
		}
	else
		for(int i=1;i<=n&&sol<k;++i)
			{
			if(viz[i]==0)
				{
				viz[i]=1;
				if(cauta(i,st[p-1])==0)
					{
					st[p]=i;
					bkt(p+1);
					}
				viz[i]=0;
				}

			}
	}
int main()
	{
	read();
	bkt(1);
	return 0;
	}