#include<cstdio>
#include<string>
int map[22][3];
int cnt;
int start;
int f[22];
int *a;
void dfs(int *a,int e,int c)
{
int i;
if(c>20)return;
if(c==20&&e==start)
{
printf("%d: %d",++cnt,start);
int j;
for(j=0;j<20;j++)
printf(" %d",a[j]);
printf("\n");
}
else
for(i=1;i<4;i++)
if(!f[map[e][i]])
{
f[map[e][i]]=1;
a[c]=map[e][i];
dfs(a,map[e][i],c+1);
f[map[e][i]]=0;
}
}
int main()
{
while(1)
{
scanf("%d",&map[1][1]);
if(map[1][1]==0)break;
scanf("%d%d",&map[1][2],&map[1][3]);
int i;
for(i=2;i<21;i++)
scanf("%d%d%d",&map[i][1],&map[i][2],&map[i][3]);
scanf("%d",&start);
a=new int[22];
memset(a,0,sizeof(a));
memset(f,0,sizeof(f));
cnt=0;
dfs(a,start,0);
}
return 0;
}
hdu2181
最新推荐文章于 2020-10-31 18:59:37 发布