Pagini recente » Cod sursa (job #39931) | Cod sursa (job #1996737) | Cod sursa (job #155337)
Cod sursa(job #155337)
#include<fstream.h>
ifstream f("dusman.in");
ofstream g("dusman.out");
int n,m,p,x[1000],k,v[1000],d[3][1000],nr;
void citire()
{int A,B;
f>>n>>p>>m;
for(int i=1;i<=m;i++)
{ f>>A>>B;
for(int j=0;j<3;j++)
if(d[j][A]==0)
{ d[j][A]=B;
break;
}
for(j=0;j<3;j++)
if(d[j][B]==0)
{ d[j][B]=A;
break;
}
}
}
void afisare()
{for(int i=1;i<=k;i++)
g<<x[i]<<" ";
g<<'\n';
}
int corect(int k)
{if(v[x[k]]==1)
return 0;
else
if(k!=1)
for(int i=0;i<3;i++)
if(d[i][x[k]]==x[k-1])
return 0;
return 1;
}
void back() //
{k=1;
x[k]=0;
while(k>0)
{ if(x[k]<n)
{ x[k]++;
if(corect(k))
{ if(k==n)
{ nr++;
if(nr==p)
afisare();
}
else
{ v[x[k]]=1;
k++;
x[k]=0;
}
}
}
else
{ k--;
v[x[k]]=0;
}
}
}
int main()
{citire();
back();
return 0;
}