#include<iostream>
#include<vector>
#include<iterator>
#include<functional>
#include<algorithm>
#include<string>
#include<fstream>
using namespace std;
template<class Type>
void swap1(Type &a,Type &b)
{
Type temp=a;
a=b;
b=temp;
}
template<class Type>
void Perm(Type list[],int k,int m)
{
if(k==m)
{
for(int i=0;i<=m;i++)
cout<<list[i];
cout<<endl;
}
else
for(int i=k;i<=m;i++)
{
swap1(list[k],list[i]);
Perm(list,k+1,m);
swap1(list[k],list[i]);
}
}
int main()
{
cout<<"size:";
int size;
cin>>size;
cout<<"filename:";
string name;
cin>>name;
ofstream outfile(name.c_str(),ios::app);
vector<int>coll;
int *p=new int[size];
for(int i=0;i<size;i++)
{
p[i]=i;
coll.push_back(i);
}
Perm(p,0,size-1);
do
{
copy(coll.begin(),coll.end(),
ostream_iterator<int>(cout," "));
for(int i=0;i<coll.size();++i)
outfile<<coll[i];
outfile<<endl;
}while(next_permutation(coll.begin(),coll.end()));
}
#include<vector>
#include<iterator>
#include<functional>
#include<algorithm>
#include<string>
#include<fstream>
using namespace std;
template<class Type>
void swap1(Type &a,Type &b)
{
Type temp=a;
a=b;
b=temp;
}
template<class Type>
void Perm(Type list[],int k,int m)
{
if(k==m)
{
for(int i=0;i<=m;i++)
cout<<list[i];
cout<<endl;
}
else
for(int i=k;i<=m;i++)
{
swap1(list[k],list[i]);
Perm(list,k+1,m);
swap1(list[k],list[i]);
}
}
int main()
{
cout<<"size:";
int size;
cin>>size;
cout<<"filename:";
string name;
cin>>name;
ofstream outfile(name.c_str(),ios::app);
vector<int>coll;
int *p=new int[size];
for(int i=0;i<size;i++)
{
p[i]=i;
coll.push_back(i);
}
Perm(p,0,size-1);
do
{
copy(coll.begin(),coll.end(),
ostream_iterator<int>(cout," "));
for(int i=0;i<coll.size();++i)
outfile<<coll[i];
outfile<<endl;
}while(next_permutation(coll.begin(),coll.end()));
}