//In the name of 2002! #include #include #include using namespace std; vector list; vector ans_sort; void output(){ for(int i=1;i x,int y,int vlength){ int biges; if(2*ylist[y]) biges=2*y; else biges=y; if((2*y+1)list[biges]) biges=2*y+1; if(biges!=y){ swap(list[y],list[biges]); make_heap(list,biges,vlength); } } void sort_heap(){ int vsize=list.size(); for(int i=vsize-1;i>=2;i--){ swap(list[1],list[i]); make_heap(list,1,i); } } void input(){ int n,x; cin>>n; list.push_back(0); for(int i=0;i>x; list.push_back(x);} for(int i=n/2;i>=1;i--) make_heap(list,i,n+1); } int main(){ input(); sort_heap(); output(); return 0; }