Cod sursa(job #938414)

Utilizator antonioteoZait Teodor Antonio antonioteo Data 12 aprilie 2013 16:49:47
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.32 kb
#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;
}