Pagini recente » Cod sursa (job #1935750) | Cod sursa (job #2807126) | Cod sursa (job #1670886) | Cod sursa (job #649205) | Cod sursa (job #1670681)
#include <iostream>
#include <fstream>
using namespace std;
fstream g("dusman.out",ios::out);
int x[1001],k,as,ev,n,k1,a[1001][1001],m,nr=0;
void init()
{x[k]=0;}
void succesor()
{
if(x[k]<n)
{x[k]++;as=1;
}else as=0;
}
void valid()
{ev=1;
int i,j;
for(i=1;((i<k)&&(ev==1));i++)
{if(a[x[i]][x[i+1]]==1)
ev=0;
for(j=i+1;((j<=k)&&(ev==1));j++)
if(x[i]==x[j])
ev=0;
}
}
int solutie()
{return (k==n);}
void tipar()
{int i;
nr++;
if(nr==k1)
{for(i=1;i<=k;i++)
g<<x[i]<<" ";
k=-100;}
}
int main()
{ fstream f("dusman.in",ios::in);
int i,c,d,j;
f>>n>>k1>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=0;
for(i=1;i<=m;i++)
{f>>c>>d;
a[c][d]=1;
a[d][c]=1;}
k=1;
init();
while(k>0)
{do{succesor();
if(as)
valid();
}while((as)&&((!as)||(!ev)));
if(as)
if(solutie())
tipar();
else
{k++;init();}
else
k--;
}
g.close();
}