Pagini recente » Cod sursa (job #2719959) | Cod sursa (job #484424) | Cod sursa (job #2856612) | Cod sursa (job #1234088) | Cod sursa (job #1593255)
#include <fstream>
using namespace std;
ifstream fin("dusman.in");
ofstream fout("dusman.out");
int a[10001],b[10001],n,m,ok,j,v[1001],viz[1001],i,k,M,p;
void afis(int m)
{
p++;
if(p==k)
{for(int i=1;i<=n;i++)
fout<<v[i]<<" ";
fout<<endl;}
}
int gata(int k)
{
return 0;
}
int solutie(int m)
{
if(m<n)
return 0;
else
{
ok=0;
for(int j=1;j<=m;j++)
for(int i=1;i<=n;i++)
if(v[i]==a[j])
{
if(v[i+1]==b[j]||v[i-1]==b[j])
{ok=1;break;}
}
if(ok==0)
return 1;
else
return 0;
}
}
int cont(int m)
{
return 1;
}
void backtrack(int m)
{
if(p==k)
return;
for(int i=1;i<=n;i++)
if(!viz[i])
{
v[m]=i;
viz[i]=1;
if(cont(m))
if(solutie(m))
{afis(m);
}
else
backtrack(m+1);
viz[i]=0;
}
}
int main()
{
fin>>n>>k>>M;
for(i=1;i<=M;i++)
fin>>a[i]>>b[i];
backtrack(1);
return 0;}