20. ضغط التسلسل باستخدام std::map و std::vector
C++
Medium
STL
مهمة «20. ضغط التسلسل باستخدام std::map و std::vector»
إليك نص مهمة البرمجة مترجمًا إلى العربية:
تم إعطاء تسلسل من الأعداد الصحيحة. يجب تنفيذ ضغط للتسلسل: استبدال كل رقم برقم ترتيبه عند أول ظهور (بدءًا من 1). يجب أن تكون الأرقام الترتيبية فريدة لكل رقم. استخدم <code>std::map</code> لتخزين تطابق الرقم ورقمه الترتيبي، ثم أخرج النتيجة بترتيب التسلسل الأصلي.
تم إعطاء تسلسل من الأعداد الصحيحة. يجب تنفيذ ضغط للتسلسل: استبدال كل رقم برقم ترتيبه عند أول ظهور (بدءًا من 1). يجب أن تكون الأرقام الترتيبية فريدة لكل رقم. استخدم <code>std::map</code> لتخزين تطابق الرقم ورقمه الترتيبي، ثم أخرج النتيجة بترتيب التسلسل الأصلي.
تنسيق الإدخال
في السطر الأول عدد صحيح N (1 ≤ N ≤ 10^6). في السطر الثاني N من الأعداد الصحيحة، مفصولة بمسافات، قيم الأعداد تتراوح من -10^9 إلى 10^9.
تنسيق الإخراج
أخرج N عددًا صحيحًا — الأرقام الترتيبية لكل رقم في التسلسل الأصلي، مفصولة بمسافة.
أمثلة
مثال 1
الإدخال
5
1 2 1 3 2
الإخراج
1 2 1 3 2
مثال 2
الإدخال
2
1
3.0
2
4.0 5.0
الإخراج
28.27
20.00
مثال 3
الإدخال
3
100 100 100
الإخراج
1 1 1
مثال 4
الإدخال
1
2
2.5 3.5
الإخراج
1
مثال 5
الإدخال
6
ADD Write report 3
ADD Fix bug 5
ADD Update docs 2
PENDING
COMPLETE Fix bug
PENDING
الإخراج
Fix bug, Write report, Update docs
Write report, Update docs
main.cpp