Pagini recente » Cod sursa (job #2268090) | Cod sursa (job #1753136) | Cod sursa (job #2105939) | Cod sursa (job #1296664) | Cod sursa (job #938414)
Cod sursa(job #938414)
#include <fstream>
#include <cstring>
#include <queue>
#include <vector>
#define MAX_N 500004
using namespace std;
const char iname[] = "algsort.in";
const char oname[] = "algsort.out";
ifstream fin(iname);
ofstream fout(oname);
int N, i, j, aux, x;
struct cmp
{
bool operator() (const int &a, const int &b) const
{
if (a > b) return 1;
return 0;
};
};
priority_queue <int, vector <int>, cmp> Q;
vector <int> Solution;
vector <int> :: iterator it;
/*
int a[MAX_N], c[MAX_N];
inline void merge (int a[MAX_N], int l, int r)
{
int m = (l + r) / 2, ind = 0;
for (i = l, j = m + 1; i <= m && j <= r;)
{
if (a[i] < a[j])
c[++ind] = a[i], ++i;
else
c[++ind] = a[j], ++j;
}
for (; i <= m; ++i) c[++ind] = a[i];
for (; j <= r; ++j) c[++ind] = a[j];
for (i = l, j = 1; j <= ind; ++i, ++j)
a[i] = c[j];
}
void merge_sort (int left, int right)
{
if (left == right) return;
int m = (left + right) / 2;
merge_sort(left, m); merge_sort(m + 1, right);
merge(a, left, right);
}
int main()
{
fin >> N;
for (i = 1; i <= N; ++i) fin >> a[i];
merge_sort(1, N);
for (i = 1; i <= N; ++i)
fout << a[i] << ' ';
return 0;
}
*/
int main()
{
fin >> N;
for (i = 1; i <= N; ++i) fin >> x, Q.push(x);
while (!Q.empty())
fout << Q.top() << ' ',
Q.pop();
return 0;
}