20. Compression de séquence avec std::map et std::vector

C++ Medium STL

Tâche «20. Compression de séquence avec std::map et std::vector»

Étant donnée une séquence d’entiers. Il faut effectuer la compression de la séquence : remplacer chaque nombre par son numéro d’ordre lors de sa première apparition (en commençant par 1). Les numéros d’ordre doivent être uniques pour chaque nombre. Utilisez std::map pour stocker la correspondance entre le nombre et son numéro, et affichez le résultat dans l’ordre de la séquence d’origine.

Format d\ entrée

Sur la première ligne, un entier N (1 ≤ N ≤ 10^6). Sur la deuxième ligne, N entiers séparés par des espaces, valeurs des entiers de -10^9 à 10^9.

Format de sortie

Affichez N entiers — les numéros d’ordre pour chaque nombre dans la séquence d’origine, séparés par un espace.

Exemples

Exemple 1

ENTRÉE
5 1 2 1 3 2
SORTIE
1 2 1 3 2

Exemple 2

ENTRÉE
2 1 3.0 2 4.0 5.0
SORTIE
28.27 20.00

Exemple 3

ENTRÉE
3 100 100 100
SORTIE
1 1 1

Exemple 4

ENTRÉE
1 2 2.5 3.5
SORTIE
1

Exemple 5

ENTRÉE
6 ADD Write report 3 ADD Fix bug 5 ADD Update docs 2 PENDING COMPLETE Fix bug PENDING
SORTIE
Fix bug, Write report, Update docs Write report, Update docs
main.cpp