20. Сжатие последовательности с помощью std::map и std::vector
C++
Средний
STL
Задача «20. Сжатие последовательности с помощью std::map и std::vector»
Дана последовательность целых чисел. Необходимо выполнить сжатие последовательности: заменить каждое число на его порядковый номер при первом появлении (начиная с 1). Порядковые номера должны быть уникальными для каждого числа. Используйте std::map для хранения соответствия числа и его номера, а результат выведите в порядке исходной последовательности.
Формат ввода
В первой строке целое число N (1 ≤ N ≤ 10^6). Во второй строке N целых чисел, разделённых пробелами, значения чисел от -10^9 до 10^9.
Формат вывода
Выведите N целых чисел — порядковые номера для каждого числа в исходной последовательности, разделённые пробелом.
Примеры
Пример 1
ВВОД
5
1 2 1 3 2
ВЫВОД
1 2 1 3 2
Пример 2
ВВОД
2
1
3.0
2
4.0 5.0
ВЫВОД
28.27
20.00
Пример 3
ВВОД
3
100 100 100
ВЫВОД
1 1 1
Пример 4
ВВОД
1
2
2.5 3.5
ВЫВОД
1
Пример 5
ВВОД
6
ADD Write report 3
ADD Fix bug 5
ADD Update docs 2
PENDING
COMPLETE Fix bug
PENDING
ВЫВОД
Fix bug, Write report, Update docs
Write report, Update docs
main.cpp