Pagini recente » Cod sursa (job #1844724) | Cod sursa (job #2941553) | Cod sursa (job #2267720) | Cod sursa (job #117310) | Cod sursa (job #1557161)
#define nMax 9
#include <fstream>
#include <list>
#include <queue>
using namespace std;
ifstream x ("permutari.in");
ofstream y ("permutari.out");
int n;
bool viz[nMax];
list<int> node[nMax];
queue<int> q;
void magic(int a)
{
for(int i=a-1;i>0;i--)
{
node[a].push_back(i);
node[i].push_back(a);
}
if(a<n)
magic(++a);
}
void show(queue<int> q)
{
while(!q.empty())
{
y<<q.front()<<' ';
q.pop();
}
y<<'\n';
}
void hocus_pocus(int a, bool viz[], queue<int> q)
{
viz[a]=true;
q.push(a);
for(list<int>::const_iterator i=node[a].begin(); i!=node[a].end(); i++)
if(!viz[*i])
hocus_pocus(*i,viz,q);
viz[a]=false;
if(q.size()==n)
show(q);
}
int main()
{
x>>n;
magic(2);
for(int i=1;i<=n;i++)
hocus_pocus(i,viz,q);
return 0;
}