20. std::map और std::vector का उपयोग करके अनुक्रम का संपीड़न

C++ Medium STL

कार्य «20. std::map और std::vector का उपयोग करके अनुक्रम का संपीड़न»

पूर्णांक संख्याओं का एक अनुक्रम दिया गया है। अनुक्रम का संपीड़न करना आवश्यक है: प्रत्येक संख्या को उसके पहली बार प्रकट होने पर क्रमिक संख्या (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