// Создание set <своя_структура>. Сортировка массива.
#include <set>
#include <cstdio>
using namespace std;
int n, d[100];
struct box
{
int i;
box() { }
box( int x ) { i = x; }
};
bool operator < ( box a, box b ) { return d[a.i] < d[b.i]; }
int main()
{
set <box> s; // чтобы можно было создавать set<box>, multiset<box>, достаточно для (box,box) определить оператор "<"
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &d[i]);
s.insert(box(i));
}
// далее идет вывод всех различных элементов массива в порядке возрастания
while (s.size() > 0)
{
int i = s.begin()->i;
printf("%d ", d[i]);
s.erase(i);
}
return 0;
}