hdu-2181

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 
 5 #define RE register
 6 #define FOR(i,a,b) for(RE int i=a;i<=b;++i)
 7 #define sc(n) scanf("%d",&n)
 8 
 9 using namespace std;
10 
11 int m,mp[21][3],cnt,vis[21],ans[21];
12 
13 void dfs(int d,int k)
14 {
15     if(k==21)
16     {
17         if(mp[d][0]!=m&&mp[d][1]!=m&&mp[d][2]!=m)return;
18         printf("%d:  %d ",++cnt,m);
19         FOR(i,2,20)printf("%d ",ans[i]);
20         printf("%d\n",m);return;
21     }
22     FOR(i,0,2)
23         if(!vis[mp[d][i]])
24         {
25             ans[k]=vis[mp[d][i]]=mp[d][i];
26             dfs(ans[k],k+1);
27             vis[mp[d][i]]=0;
28         }
29 }
30 
31 int main()
32 {
33     FOR(i,1,20)sc(mp[i][0]),sc(mp[i][1]),sc(mp[i][2]),sort(mp[i],mp[i]+3);
34     while(sc(m),m)memset(vis,0,sizeof vis),cnt=0,vis[m]=1,dfs(m,2);
35     return 0;
36 }

猜你喜欢

转载自www.cnblogs.com/2aptx4869/p/12216651.html