CF796B Find The Bone

题目描述

巫师 Zane 正要进行一个魔术表演——移动杯子。 桌子上沿 $x$ 轴放着 $n$ 个杯子,编号从 $1$ 到 $n$,桌面上有 $m$ 个洞。具体地说,第 $i$ 个杯子位于 $x=i$ 的位置。 一根关键的骨头最开始在 $x=1$ 的位置。Zane 将会进行 $k$ 次杯子交换。第 $i$ 次交换涉及位于 $x=u_{i}$ 和 $x=v_{i}$ 的两个杯子。如果骨头在某一个时刻处于有洞的位置,它将会掉进洞里,落到地上,以后的所有交换操作都不会再影响它。 请注意,Zane 是个魔法师。他交换杯子不是普通地移动,而是瞬移将杯子(如果骨头在其中,骨头也和杯子一起)直接换到目标位置。因此,例如当他交换 $x=4$ 和 $x=6$ 位置的杯子时,它们在操作过程中不会出现在 $x=5$ 的位置。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF796B/190b731b36b585b1537188535b06ba518cad612c.png) Zane 的小狗 Inzane 遇到了麻烦。Zane 去度假了,Inzane 找不到他心爱的骨头,因为挨个打开所有杯子实在太费劲了。Inzane 知道 Codeforces 社区成功帮过 Zane,所以他也想请大家帮他解决这个问题。请帮 Inzane 确定骨头最终所在的位置。

输入格式

第一行包含三个整数 $n$、$m$ 和 $k$($2 \leq n \leq 10^6$,$1 \leq m \leq n$,$1 \leq k \leq 3 \cdot 10^5$),分别表示杯子数量、桌上的洞的数量和交换操作次数。 第二行包含 $m$ 个互不相同的整数 $h_{1}, h_{2}, ..., h_{m}$($1 \leq h_{i} \leq n$),表示桌面沿 $x$ 轴有洞的位置。 接下来的 $k$ 行,每行包含两个整数 $u_{i}$ 和 $v_{i}$($1 \leq u_{i}, v_{i} \leq n$,$u_{i} \neq v_{i}$),表示本次要交换的两个杯子的位置。

输出格式

输出一个整数,表示骨头最终所在的 $x$ 轴位置。

说明/提示

在第一个样例中,每次操作后骨头所在的位置依次为 $x=2$、$x=5$、$x=7$ 和 $x=1$。 在第二个样例中,第一次操作后骨头移动到 $x=2$,并掉进了洞。 由 ChatGPT 5 翻译