Pagini recente » Cod sursa (job #207636) | Cod sursa (job #910969) | Cod sursa (job #3166031) | Cod sursa (job #1732733) | Cod sursa (job #244466)
Cod sursa(job #244466)
#include<fstream.h>
#include <iostream.h>
int n,k,m,b,a[1000][3],x[1000],nr=0,A,B;
ifstream f("dusman.in");
ofstream g("dusman.out");
int valid(int k)
{int i,j;
for(i=1;i<k;i++) if(x[i]==x[k]) return 0;
if(k>1)for(j=1;j<=3;j++)if(a[x[k]][j]==x[k-1]) return 0;
return 1;}
int solutie(int k)
{int ok=0;
if(k==n) ok=1;
return ok;}
void tipar(int k)
{int i;
for(i=1;i<=k;i++) g<<x[i]<<" ";}
void back()
{int k;k=1;
x[k]=0;
while(k>0)
if(x[k]<n){x[k]++;
if(valid(k)) if(solutie(k)){nr++;if(nr==b) tipar(k);}
else{k++;
x[k]=0;} }
else k--;}
void main()
{int i,j;
f>>n>>b>>m;
for(i=1;i<=m;i++)
{f>>A>>B;
for(j=1;j<=3;j++) if(a[A][j]==0) a[A][j]=B;
for(j=1;j<=3;j++) if(a[B][j]==0) a[B][j]=A;
}
back();}