#include<bits/stdc++.h>
using namespace std;
const int N=1e7+5;
int a[N],b,n,cnt;
void up(int u){
	if(u==1)return;
	int v=u>>1;
	if(a[u]<a[v]){
		swap(a[u],a[v]);
		up(v);
	}
}
void down(int u){
	if(u<<1 >cnt)return;
	int v=u<<1;
	if(v+1<=cnt)
		v+=a[v+1]<a[v];
	if(a[v]<a[u]){
		swap(a[u],a[v]);
		down(v);
	}
}
int front(){return a[1];}
void pop(){
	swap(a[1],a[cnt--]);
	down(1);
}
void push(int x){
	a[++cnt]=x;up(cnt);
}
int main(){
	ios::sync_with_stdio(false);cin.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>b;
		push(b);
	}
	for(int i=1;i<=n;i++){
		cout<<front()<<' ';
		pop();
	}
	return 0;
}

0 条评论

目前还没有评论...