#include < iostream >
#include
< queue >
using   namespace  std;
struct  MAX
{
    
int  x;
}t;
struct  MIN
{
    
int  x;
}s;
bool   operator < ( const  MAX  & a, const  MAX  & b)
{
    
return  a.x < b.x;
}
// 大根堆
bool   operator < ( const  MIN  & a, const  MIN  & b)
{
    
return  a.x > b.x;
}
// 小根堆
priority_queue < MAX > qmax;
priority_queue
< MIN > qmin;
int  a,n,i;
int  main()
{
    cout
<< " 输入n " << endl;
    cin
>> n;
    cout
<< " 输入n个数 " << endl;
    
for (i = 1 ;i <= n;i ++ )
    {
        cin
>> a;
        t.x
= a;
        qmax.push(t);
        s.x
= a;
        qmin.push(s);
    }
    
while ( ! qmax.empty())
    {
        a
= qmax.top().x;
        cout
<< a << "   " ;
        qmax.pop();
    }
    cout
<< endl;
    
while ( ! qmin.empty())
    {
        a
= qmin.top().x;
        cout
<< a << "   " ;
        qmin.pop();
    }
    cout
<< endl;
    
// system("pause");
     return   0 ;
}