AT_arc191_d [ARC191D] Moving Pieces on Graph
题目描述
给定一个包含 $N$ 个顶点和 $M$ 条边的简单连通无向图。顶点编号为 $1$ 至 $N$,边编号为 $1$ 至 $M$。边 $i$ 双向连接顶点 $u_i$ 和顶点 $v_i$。
初始时,棋子 A 位于顶点 $S$,棋子 B 位于顶点 $T$($S$ 和 $T$ 由输入给出)。
你可以按任意顺序执行以下操作任意次:
- 选择棋子 A 或棋子 B,将其移动到当前顶点通过边直接连接的另一个顶点。**操作后,棋子 A 和 B 不能处于同一顶点**。
你的目标是将棋子 A 移动到顶点 $T$,同时将棋子 B 移动到顶点 $S$。
请判断是否可以达成目标。若可以,输出所需的最小操作次数;否则输出 $-1$。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $M$ $S$ $T$
> $u_1$ $v_1$
> $u_2$ $v_2$
> $\vdots$
> $u_M$ $v_M$
输出格式
若无法达成目标,输出 $-1$;否则输出所需的最小操作次数。
说明/提示
### 约束条件
- $2 \leq N \leq 2 \times 10^5$
- $N-1 \leq M \leq \min\left(\dfrac{N(N-1)}{2}, 2 \times 10^5\right)$
- $1 \leq u_i < v_i \leq N$
- 给定的图是简单且连通的
- $1 \leq S, T \leq N$
- $S \neq T$
- 输入均为整数
### 样例解释 1
例如,通过以下操作可在 $3$ 次操作内达成目标:
1. 将棋子 A 移动到顶点 $2$(此时 A 在顶点 $2$,B 在顶点 $4$)。
2. 将棋子 B 移动到顶点 $3$(此时 A 在顶点 $2$,B 在顶点 $3$)。
3. 将棋子 A 移动到顶点 $4$(此时 A 在顶点 $4$,B 在顶点 $3$)。
由于无法在少于 $3$ 次操作内完成目标,因此输出 $3$。
### 样例解释 2
无论以何种方式操作,均无法达成目标。
翻译由 DeepSeek R1 完成