ترتيب حسب التكرار مع الحفاظ على الترتيب

Swift Hard sorting

مهمة «ترتيب حسب التكرار مع الحفاظ على الترتيب»

يوجد مصفوفة من الأعداد الصحيحة. قم بترتيبها تنازليًا حسب تكرار ظهور العناصر. إذا كان لعنصرين نفس التكرار، فيجب ترتيبهما حسب ترتيب ظهورهما الأول في المصفوفة الأصلية. قم بتنفيذ خوارزمية بتعقيد زمني O(n log n) ولا تستخدم دوال الفرز المدمجة مع مقارنات مخصصة.

تنسيق الإدخال

السطر الأول يحتوي على عدد صحيح n (1 ≤ n ≤ 10^5) — عدد العناصر. السطر الثاني يحتوي على n من الأعداد الصحيحة، مفصولة بمسافات.

تنسيق الإخراج

أخرج n عددًا صحيحًا، مفصولة بمسافات — المصفوفة المرتبة.

أمثلة

مثال 1

الإدخال
4 1 2 2 3
الإخراج
2 2 1 3

مثال 2

الإدخال
6 1 2 3 4 5 6
الإخراج
1 2 3 4 5 6

مثال 3

الإدخال
1 7
الإخراج
7
main.swift