CF1620E Replace the Numbers

题目描述

你有一个整数数组(初始为空)。 你需要进行 $q$ 次操作。每次操作有两种类型之一: - “$1\ x$” —— 将元素 $x$ 添加到数组末尾; - “$2\ x\ y$” —— 将数组中所有等于 $x$ 的元素替换为 $y$。 请在所有操作完成后,输出最终的数组。

输入格式

第一行包含一个整数 $q$($1 \le q \le 5 \cdot 10^5$),表示操作次数。 接下来的 $q$ 行,每行一个操作(每行一个操作)。 每个操作有两种类型之一: - “$1\ x$” ($1 \le x \le 5 \cdot 10^5$); - “$2\ x\ y$” ($1 \le x, y \le 5 \cdot 10^5$)。 保证至少有一次第一种类型的操作。

输出格式

在一行中输出 $k$ 个整数,表示所有操作完成后得到的数组,其中 $k$ 是第一种类型操作的次数。

说明/提示

在第一个样例中,数组变化如下: $[] \rightarrow [3] \rightarrow [3, 1] \rightarrow [3, 2] \rightarrow [3, 2, 2] \rightarrow [3, 2, 2, 1] \rightarrow [3, 2, 2, 1, 2] \rightarrow [3, 2, 2, 3, 2]$。 在第二个样例中,数组变化如下: $[] \rightarrow [1] \rightarrow [1, 2] \rightarrow [1, 2, 1] \rightarrow [1, 2, 1]$。 在第三个样例中,数组变化如下: $[] \rightarrow [] \rightarrow [1] \rightarrow [1, 4] \rightarrow [1, 4, 2] \rightarrow [1, 4, 4] \rightarrow [1, 3, 3] \rightarrow [1, 3, 3, 2] \rightarrow [1, 3, 3, 7]$。 由 ChatGPT 4.1 翻译