#include
#include
#include
#include
using namespace std;
void helper(string &inTrain,vector
{
if(index == inTrain.size())
{
return;
}//if
if(index == 0)
{
string outNum("");
outNum += inTrain[index];
outTrain.push_back(outNum);
}//if
else
{
vector
// 出栈序列
int size = outTrain.size();
// 第index辆火车进栈
for(int i = 0;i < size;++i)
{
// 第i个出栈序列
int count = outTrain[i].size();
// 寻找前一个进栈的火车下标
int targetIndex;
for(int j = 0;j < count;++j)
{
if(inTrain[index-1] == outTrain[i][j])
{
targetIndex = j;
break;
}//if
}//for
string tmp(outTrain[i]);
for(int j = targetIndex;j <= count;++j)
{
tmp.insert(tmp.begin()+j,inTrain[index]);
newOutTrain.push_back(tmp);
tmp.erase(tmp.begin()+j);
}//for
}//for
swap(outTrain,newOutTrain);
}//else
helper(inTrain,outTrain,index+1);
}
vector
vector
int size = inTrain.size();
if(size <= 0)
return result;
helper(inTrain,result,0);
sort(result.begin(),result.end());
return result;
}
int main()
{
int n;
while(cin>>n)
{
string train("");
int num;
for(int i = 1;i <= n;++i)
{
cin>>num;
train += num + '0';
}//for
vector
// 输出
int size = trainNum.size();
for(int i = 0;i < size;++i)
{
int count = trainNum[i].size();
for(int j = 0;j < count;++j)
{
if(j == 0)
cout<
cout<<" "<
cout<<" "<
}//while
return 0;
}