Pagini recente » Cod sursa (job #1733965) | Cod sursa (job #2918977) | Cod sursa (job #198655) | Cod sursa (job #643871) | Cod sursa (job #2062655)
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("qwerty.in");
int n, heap[1000000];
void urcare(int heap[1000000], int p)
{
while(p>=2 && heap[p/2]<heap[p])
{
int aux=heap[p/2];
heap[p/2]=heap[p];
heap[p]=aux;
p=p/2;
}
}
void coborare( int heap[1000000],int n , int p)
{
while(2*p<=n)
{
int r=2*p;
if(r+1<=n && heap[r+1]>heap[r])
{
r=r+1;
}
if(heap[p]<heap[r])
{
int aux=heap[p];
heap[p]=heap[r];
heap[r]=aux;
p=r;
}
else
{
break;
}
}
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>heap;
urcare(heap ,i);
}
for(int i=n;i>=2;i--)
{
int aux=heap[1];
heap[1]=heap;
heap=aux;
coborare( heap , i-1, 1);
}
for(int i=1;i<=n;i++)
{
cout<<heap<<" ";
}
return 0;
}