#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cmath>
using namespace std;
bool book[30];
int mp[30][3];
int ans[30];
int cas;
void dfs(int x, int stp, int m)
{
book[x] = false;
ans[stp] = x;
for (int i = 0; i < 3; i++)
{
if (mp[x][i]==m && stp==20)
{
printf("%d: ", ++cas);
for (int i = 1; i <= 20; i++)
{
printf("%d ", ans[i]);
}
printf("%d\n", m);
}
if (book[mp[x][i]])
{
dfs(mp[x][i], stp+1, m);
}
}
book[x] = true;
return;
}
int main(void)
{
for (int i = 1; i <= 20; i++)
scanf("%d %d %d", &mp[i][0], &mp[i][1], &mp[i][2]);
int m;
while (scanf("%d", &m), m)
{
cas = 0;
memset(book, true, sizeof(book));
dfs(m, 1, m);
}
return 0;
}
HDU-2181-哈密顿绕行世界问题 [dfs]
最新推荐文章于 2020-11-24 17:23:13 发布