You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
458 B
31 lines
458 B
#include<stdio.h>
|
|
int n,num[1000010];
|
|
void down(int x)
|
|
{
|
|
int y=x;
|
|
if(x*2<=n&&num[x*2]<num[y]) y=x*2;
|
|
if(x*2+1<=n&&num[x*2+1]<num[y]) y=x*2+1;
|
|
if(y!=x)
|
|
{
|
|
int a=num[x];
|
|
num[x]=num[y];
|
|
num[y]=a;
|
|
down(y);
|
|
}
|
|
}
|
|
int main()
|
|
{
|
|
scanf("%d",&n);
|
|
for(int i=1;i<=n;i++)
|
|
scanf("%d",&num[i]);
|
|
for(int i=n/2;i;i--) down(i);
|
|
while(n)
|
|
{
|
|
printf("%d ",num[1]);
|
|
num[1]=num[n--];
|
|
down(1);
|
|
}
|
|
return 0;
|
|
}
|
|
|