20. 使用 std::map 和 std::vector 进行序列压缩
C++
Medium
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