Pagini recente » Monitorul de evaluare | Cod sursa (job #2873278) | Cod sursa (job #2918030) | Cod sursa (job #767286) | Cod sursa (job #1448429)
#include <cstdio>
#include <cassert>
#include <algorithm>
using namespace std;
#define _submit
#ifdef _submit
#define InFile "algsort.in"
#define OtFile "algsort.out"
#else
#define InFile "fis.in"
#define OtFile "fis.out"
#endif
int v[500010];
int main() {
assert(freopen(InFile, "r", stdin));
assert(freopen(OtFile, "w", stdout));
int N;
scanf("%d", &N);
int aux;
for (int i = 1; i <= N; i++) {
scanf("%d", &v[i]);
aux = i;
while (aux > 1 && v[aux] > v[aux >> 1]) {
swap(v[aux], v[aux >> 1]);
aux >>= 1;
}
}
sort_heap(v + 1, v + 1 + N);
for (int i = 1; i <= N; i++)
printf("%d ", v[i]);
return 0;
}