#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
template<class T>
void permute(vector<T>& data)
{
while ( next_permutation(data.begin() , data.end() ) )
{
for(unsigned int i=0 ; i<data.size() ; i++)
{
cout<< data[i] << " ";
}
cout << "\n";
}
}
int main ()
{
vector<int> data;
data.push_back(1);
data.push_back(2);
data.push_back(3);
permute( data );
cout<< "\nidemo na slova\n";
vector<char> chars;
chars.push_back('a');
chars.push_back('b');
chars.push_back('c');
permute( chars );
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAgICAgCiNpbmNsdWRlIDxhbGdvcml0aG0+ICAgIAojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPGNsYXNzIFQ+CnZvaWQgcGVybXV0ZSh2ZWN0b3I8VD4mIGRhdGEpCnsKIHdoaWxlICggbmV4dF9wZXJtdXRhdGlvbihkYXRhLmJlZ2luKCkgLCBkYXRhLmVuZCgpICkgKQogewogICAgZm9yKHVuc2lnbmVkIGludCBpPTAgOyBpPGRhdGEuc2l6ZSgpIDsgaSsrKQogICAgewogICAgICAgY291dDw8IGRhdGFbaV0gPDwgIiAiOwogICAgfQogICAgY291dCA8PCAiXG4iOwogfSAKfQoKCgppbnQgbWFpbiAoKSAKewogIHZlY3RvcjxpbnQ+IGRhdGE7CiAgZGF0YS5wdXNoX2JhY2soMSk7CiAgZGF0YS5wdXNoX2JhY2soMik7CiAgZGF0YS5wdXNoX2JhY2soMyk7CgogIHBlcm11dGUoIGRhdGEgKTsKICAKICAKICBjb3V0PDwgIlxuaWRlbW8gbmEgc2xvdmFcbiI7CiAgdmVjdG9yPGNoYXI+IGNoYXJzOwogIGNoYXJzLnB1c2hfYmFjaygnYScpOwogIGNoYXJzLnB1c2hfYmFjaygnYicpOwogIGNoYXJzLnB1c2hfYmFjaygnYycpOwoKICBwZXJtdXRlKCBjaGFycyApOwogCgogIHJldHVybiAwOwp9