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