Pagini recente » Cod sursa (job #615921) | Cod sursa (job #1699273) | Cod sursa (job #1999970) | Cod sursa (job #2500661) | Cod sursa (job #244470)
Cod sursa(job #244470)
#include<fstream.h>
#include <iostream.h>
int n,k,v[1000],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;
if(v[x[k]]==1) 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)) {v[x[k]]=1;if(solutie(k))
{nr++;v[x[k]]=0;if(nr==b) tipar(k);
}
else{k++;
x[k]=0;} }}
else {k--;v[x[k]]=0;}}
int 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();
return 0;}