#include<fstream.h>
fstream f("graf.in",ios::in);
fstream g("graf.out",ios::out);
int n,m,a[100][100],x[100],k,p[100];
void citire()
{int x,y;
f>>n>>m;
for(int j=1;j<=m;j++)
{f>>x>>y;
a[x][y]=1;
a[y][x]=1;
}
f>>k;
}
int cond(int j)
{if(j>1)
if(a[x[j-1]][x[j]]==0) return 0;
if(j==k) if(a[x[j]][x[1]]==0) return 0;
return 1;
}
void afis()
{for(int i=1;i<=k;i++)
g<<x[i]<<" ";
g<<x[1]<<endl;
}
void back(int j)
{for(int i=1;i<=n;i++)
if(!p[i]) {x[j]=i;
p[i]=1;
if(cond(j))
if(j==k) afis();
else back(j+1);
p[i]=0;
}
}
void main()
{citire();
back(1);
}
|