Pagini recente » Cod sursa (job #1821629) | Cod sursa (job #1821327) | Cod sursa (job #859141) | Cod sursa (job #1568646) | Cod sursa (job #828878)
Cod sursa(job #828878)
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
#define maxn 1000001
#define inf 2147483647
int n ;
int v[maxn] ;
int arbore[maxn] ;
int nrarb ;
void modifica(int value, int poz, int nod, int st, int dr)
{
if( poz > dr || poz < st) return ;
if( st == dr) {
arbore[nod] = value;
return ;
}
modifica( value, poz, nod * 2, st, ( dr + st ) / 2 ) ;
modifica( value, poz, nod * 2 + 1, ( st + dr ) / 2 + 1, dr ) ;
if( v[arbore[nod*2]] < v[arbore[nod*2+1]] )
arbore[nod] = arbore[nod*2] ;
else
arbore[nod] = arbore[nod*2+1] ;
}
int main()
{
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i <= n; ++i )
{
scanf("%d", &v[i]);
modifica( i, i, 1, 1, n) ;
}
v[0] = inf;
for(int i = 1; i <= n; ++i )
{
printf("%d ", v[ arbore[1] ] );
modifica( 0, arbore[1], 1, 1, n ) ;
}
return 0;
}