Cod sursa(job #283037)

Utilizator spidyvenomMarius Toma spidyvenom Data 18 martie 2009 17:32:14
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<fstream.h>
int a,b,m,n,nr=1,k,j,i,p,x[1001],v[1001][1001];
ifstream f("dusman.in");
ofstream g("dusman.out");
void tipar(int k)
{
int i;
nr++;
if (nr==p) for (i=1;i<=k;i++) g<<x[i]<<" ";
}
int valid(int k)
{
int ok=1;
if (k>1) if (v[x[k]][x[k-1]]) return 0;
//for (i=1;i<k;i++)
//	if (x[k]==x[i]) return 0;
return 1;
}
int sol(int k)
{
if (k==n) return 1;
else return 0;
}
void back()
{
int k;
k=1;
x[k]=0;
while (k>0)
	if (x[k]<n)
		{
		x[k]++;
		if (valid(k))
			if (sol(k)) tipar(k);
			else {k++;x[k]=0;}
		}
	else k--;
}
int main()
{
f>>n>>p>>m;
for (i=1;i<=m;i++) {f>>a>>b;v[a][b]=v[b][a]=1;}
back();
f.close();
g.close();
return 0;
}