hdu-2181

#include <cstdio>
#include <cstring>
#include <algorithm>

#define RE register
#define FOR(i,a,b) for(RE int i=a;i<=b;++i)
#define sc(n) scanf("%d",&n)

using namespace std;

int m,mp[21][3],cnt,vis[21],ans[21];

void dfs(int d,int k)
{
    if(k==21)
    {
        if(mp[d][0]!=m&&mp[d][1]!=m&&mp[d][2]!=m)return;
        printf("%d:  %d ",++cnt,m);
        FOR(i,2,20)printf("%d ",ans[i]);
        printf("%d\n",m);return;
    }
    FOR(i,0,2)
        if(!vis[mp[d][i]])
        {
            ans[k]=vis[mp[d][i]]=mp[d][i];
            dfs(ans[k],k+1);
            vis[mp[d][i]]=0;
        }
}

int main()
{
    FOR(i,1,20)sc(mp[i][0]),sc(mp[i][1]),sc(mp[i][2]),sort(mp[i],mp[i]+3);
    while(sc(m),m)memset(vis,0,sizeof vis),cnt=0,vis[m]=1,dfs(m,2);
    return 0;
}

  

posted @ 2020-01-20 09:28  洛绫璃  阅读(131)  评论(0编辑  收藏  举报