深度搜索
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int n,q=1;
int s[30],a[30][5],book[30];
void dfs(int x,int l)
{
book[x]=1;
s[l]=x;
for(int i=0;i<3;i++)
{
int tx=a[x][i];
if(tx==n&&l==19)
{
printf("%d: ",q++);
for(int j=0;j<20;j++)
printf(" %d",s[j]);
printf(" %d\n",n);
}
if(!book[tx])
dfs(tx,l+1);
}
book[x]=0;
}
int main()
{
int i,j;
for(i=1;i<=20;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
while(~scanf("%d",&n)&&n)
{
memset(book,0,sizeof(book));
dfs(n,0);
}
return 0;
}