Cod sursa(job #244452)

Utilizator mad200647Mihai Toma mad200647 Data 15 ianuarie 2009 08:26:33
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<fstream.h>
#include<string.h>
ifstream f("dusman.in");
ofstream g("dusman.out");
int nr,q,i,k,m,n,x[1000],x1,x2,v[1000],BRAK=0;
int a[10000][10000];
void tipar ()
{nr++;
if (nr==q) for (i=0;i<=k;i++) {g<<x[i]<<" ";BRAK=1;}}
int valid (int k)
{int i,ok=1;
 if (v[x[k]]>1) ok=0;
 //for (i=0;i<k;i++) if (x[k]==x[i]) ok=0;
 if (k>0) if (a[x[k]][x[k-1]]) ok=0;
 return ok;
 }
int solutie (int k)
{if (k==(n-1)) return 1;
 else return 0;}
void back ()
{k=0;x[k]=0;
 while (k>-1)
	if (x[k]<n)
		{if(x[k]!=0) v[x[k]]--;x[k]++;v[x[k]]++;
		 if (valid (k)) if (solutie(k)) {tipar();if(BRAK) break;}
				else {k++;x[k]=0;}
		}
	else {v[x[k]]--;k--;}
}
int main ()
{f>>n>>q>>m;
 for (i=0;i<m;i++) {f>>x1>>x2;a[x1][x2]++;a[x2][x1]++;}
 back ();
 return 0;}