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