20. Komprimierung einer Sequenz mit std::map und std::vector
C++
Medium
STL
Aufgabe «20. Komprimierung einer Sequenz mit std::map und std::vector»
Gegeben ist eine Folge von ganzen Zahlen. Führen Sie eine Komprimierung der Sequenz durch: Ersetzen Sie jede Zahl durch ihre Ordnungsnummer beim ersten Auftreten (beginnend mit 1). Die Ordnungsnummern müssen für jede Zahl eindeutig sein. Verwenden Sie std::map zur Speicherung der Zuordnung von Zahl und ihrer Nummer, und geben Sie das Ergebnis in der Reihenfolge der ursprünglichen Sequenz aus.
Eingabeformat
In der ersten Zeile eine ganze Zahl N (1 ≤ N ≤ 10^6). In der zweiten Zeile N durch Leerzeichen getrennte ganze Zahlen, die Werte der Zahlen reichen von -10^9 bis 10^9.
Ausgabeformat
Geben Sie N ganze Zahlen aus – die Ordnungsnummern für jede Zahl in der ursprünglichen Sequenz, getrennt durch ein Leerzeichen.
Beispiele
Beispiel 1
EINGABE
5
1 2 1 3 2
AUSGABE
1 2 1 3 2
Beispiel 2
EINGABE
2
1
3.0
2
4.0 5.0
AUSGABE
28.27
20.00
Beispiel 3
EINGABE
3
100 100 100
AUSGABE
1 1 1
Beispiel 4
EINGABE
1
2
2.5 3.5
AUSGABE
1
Beispiel 5
EINGABE
6
ADD Write report 3
ADD Fix bug 5
ADD Update docs 2
PENDING
COMPLETE Fix bug
PENDING
AUSGABE
Fix bug, Write report, Update docs
Write report, Update docs
main.cpp