#include<iostream>
using namespace std;
const int sizee=7;
class list{
int l[sizee];
int length =0;
public :
list();
bool is_full();
void print();
void add_end(int el);
void delete_end();
int top();
bool empty();
};
void sort(list org , list& tmp){
while(1){
int topOfOrg = org.top();
if(tmp.empty()){
tmp.add_end(topOfOrg);
org.delete_end();
}
else {
if(tmp.top() >= topOfOrg){
tmp.add_end(topOfOrg);
org.delete_end();
}
else {
org.delete_end();
while(!tmp.empty() && tmp.top() < topOfOrg){
org.add_end(tmp.top());
tmp.delete_end();
}
tmp.add_end(topOfOrg);
}
}
if(org.empty())break;
}
}
int list::top(){
return this->l[length-1];
}
bool list::empty(){
return length==0;
}
void list::delete_end(){
length--;
}
void list::add_end(int el){
l[length] = el;
length++;
}
list::list(){
length = 0;
}
bool list::is_full(){
return length==sizee;
}
void list::print(){
for(int i =0;i<length;i++)cout<<l[i]<<" ";
cout<<endl;
}
int main() {
list ls;
ls.add_end(1);
ls.add_end(2);
ls.add_end(5);
ls.add_end(6);
ls.add_end(3);
ls.add_end(4);
ls.add_end(7);
list tmp;
sort(ls ,tmp);
tmp.print();
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBzaXplZT03OwoKY2xhc3MgbGlzdHsKICAgIGludCBsW3NpemVlXTsKICAgIGludCBsZW5ndGggPTA7CgoKICAgIHB1YmxpYyA6ICAgIAogICAgbGlzdCgpOwogICAgYm9vbCBpc19mdWxsKCk7CiAgICB2b2lkICBwcmludCgpOwogICAgdm9pZCBhZGRfZW5kKGludCBlbCk7CiAgICB2b2lkIGRlbGV0ZV9lbmQoKTsKICAgIGludCB0b3AoKTsKICAgIGJvb2wgZW1wdHkoKTsKICAgIAogICAgCgp9OwoKdm9pZCBzb3J0KGxpc3Qgb3JnICwgbGlzdCYgdG1wKXsKICAgIAogICAgd2hpbGUoMSl7CiAgICAgICAgaW50IHRvcE9mT3JnID0gb3JnLnRvcCgpOwogICAgICAgIAogICAgICAgIGlmKHRtcC5lbXB0eSgpKXsKICAgICAgICAgICAgdG1wLmFkZF9lbmQodG9wT2ZPcmcpOwogICAgICAgICAgICBvcmcuZGVsZXRlX2VuZCgpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgaWYodG1wLnRvcCgpID49IHRvcE9mT3JnKXsKICAgICAgICAgICAgICAgIHRtcC5hZGRfZW5kKHRvcE9mT3JnKTsKICAgICAgICAgICAgICAgIG9yZy5kZWxldGVfZW5kKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBvcmcuZGVsZXRlX2VuZCgpOwogICAgICAgICAgICAgICAgd2hpbGUoIXRtcC5lbXB0eSgpICYmIHRtcC50b3AoKSA8IHRvcE9mT3JnKXsKICAgICAgICAgICAgICAgIG9yZy5hZGRfZW5kKHRtcC50b3AoKSk7CiAgICAgICAgICAgICAgICB0bXAuZGVsZXRlX2VuZCgpOwogICAgICAgICAgICB9ICAgCiAgICAgICAgICAgIHRtcC5hZGRfZW5kKHRvcE9mT3JnKTsgICAgICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYob3JnLmVtcHR5KCkpYnJlYWs7CiAgICB9CgoKCn0KCgoKCmludCBsaXN0Ojp0b3AoKXsKICAgIHJldHVybiB0aGlzLT5sW2xlbmd0aC0xXTsKfQpib29sIGxpc3Q6OmVtcHR5KCl7CiAgICByZXR1cm4gbGVuZ3RoPT0wOwogICAgCn0Kdm9pZCBsaXN0OjpkZWxldGVfZW5kKCl7CiAgICAgICAgbGVuZ3RoLS07Cn0KCnZvaWQgbGlzdDo6YWRkX2VuZChpbnQgZWwpewogICAgICAgIGxbbGVuZ3RoXSA9IGVsOwogICAgICAgIGxlbmd0aCsrOwogICAgCgp9CgpsaXN0OjpsaXN0KCl7CiAgICBsZW5ndGggPSAwOwp9Cgpib29sIGxpc3Q6OmlzX2Z1bGwoKXsKICAgIHJldHVybiBsZW5ndGg9PXNpemVlOwp9Cgp2b2lkIGxpc3Q6OnByaW50KCl7CiAgICBmb3IoaW50IGkgPTA7aTxsZW5ndGg7aSsrKWNvdXQ8PGxbaV08PCIgIjsKICAgIGNvdXQ8PGVuZGw7Cn0KCgoKaW50IG1haW4oKSB7CiAgICBsaXN0IGxzOwogICAgbHMuYWRkX2VuZCgxKTsKICAgIGxzLmFkZF9lbmQoMik7CiAgICBscy5hZGRfZW5kKDUpOwogICAgbHMuYWRkX2VuZCg2KTsKICAgIGxzLmFkZF9lbmQoMyk7CiAgICBscy5hZGRfZW5kKDQpOwogICAgbHMuYWRkX2VuZCg3KTsKCiAgICBsaXN0IHRtcDsKCiAgICBzb3J0KGxzICx0bXApOwogICAgdG1wLnByaW50KCk7CgoKCgoKCgogICAgcmV0dXJuIDA7Cn0=