20. Compressão de sequência usando std::map e std::vector

C++ Medium STL

Tarefa «20. Compressão de sequência usando std::map e std::vector»

Dada uma sequência de inteiros. É necessário realizar a compressão da sequência: substituir cada número pelo seu número de ordem na primeira aparição (começando em 1). Os números de ordem devem ser únicos para cada número. Use std::map para armazenar a correspondência entre o número e seu índice, e exiba o resultado na ordem da sequência original.

Formato de Entrada

Na primeira linha, um inteiro N (1 ≤ N ≤ 10^6). Na segunda linha, N inteiros separados por espaços, com valores de -10^9 a 10^9.

Formato de Saída

Imprima N inteiros — os números de ordem para cada número na sequência original, separados por espaço.

Exemplos

Exemplo 1

ENTRADA
5 1 2 1 3 2
SAÍDA
1 2 1 3 2

Exemplo 2

ENTRADA
2 1 3.0 2 4.0 5.0
SAÍDA
28.27 20.00

Exemplo 3

ENTRADA
3 100 100 100
SAÍDA
1 1 1

Exemplo 4

ENTRADA
1 2 2.5 3.5
SAÍDA
1

Exemplo 5

ENTRADA
6 ADD Write report 3 ADD Fix bug 5 ADD Update docs 2 PENDING COMPLETE Fix bug PENDING
SAÍDA
Fix bug, Write report, Update docs Write report, Update docs
main.cpp