水题秒过,感觉真爽,暴力过啦,谁说我不可以,这次全是我自己写的,AC了,哈哈哈哈哈~
但还是要注意PE的问题,不要打印多余的空格哦!!!!
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int map[25][25];
int a,b,c;
int n;
int ans[23];
int sum=1;
int vis[23];
void solve(int x, int s)
{
if(x==n)
{
if(s==20)
{
cout<<sum++<<":"<<" "<<n<<" ";
for(int i=0; i<19;i++)
{
cout<<ans[i]<<" ";
}
cout<<ans[19];
cout<<endl;
return;
}
}
for(int i=1;i<=20;i++)
{
if(map[x][i]&&!vis[i])
{
vis[i]=1;
ans[s]=i;
s++;
solve(i,s);
vis[i]=0;
s--;
}
}
}
void input()
{
memset(map,0,sizeof(map));
for(int i=1;i<=20;i++)
{
cin>>a>>b>>c;
map[i][a]=map[i][b]=map[i][c]=1;
}
while(cin>>n)
{
if(!n)break;
memset(ans,0,sizeof(ans));
memset(vis,0,sizeof(vis));
for(int i=1;i<=20;i++)
{
if(map[n][i])
{
ans[0]=i;
vis[i]=1;
solve(i,1);
vis[i]=0;
}
}
}
}
int main()
{
input();
//system("pause");
return 0;
}