5933: 最短距离
[Creator : ]
Description
某场宴会上有 $n$ 个人
每个人认识宴会上的一些人,如果 $a$ 认识 $b$,我们就说 $a$ 和 $b$ 的疏远度是 $1$,特别地,$a$ 和 $a$ 的疏远度是 0。
$a$ 和 $c$ 可以通过一个同时认识他们俩的 $b$ 作介绍来互相认识,这时,我们说 $a$ 和 $c$ 的疏远度是 $a$ 和 $b$ 的疏远度加上 $b$ 和 $c$ 疏远度。
选定两个人,问如何作介绍,使得 $a$ 和 $b$ 的疏远度最小?无法介绍来认识输出 !
每个人认识宴会上的一些人,如果 $a$ 认识 $b$,我们就说 $a$ 和 $b$ 的疏远度是 $1$,特别地,$a$ 和 $a$ 的疏远度是 0。
$a$ 和 $c$ 可以通过一个同时认识他们俩的 $b$ 作介绍来互相认识,这时,我们说 $a$ 和 $c$ 的疏远度是 $a$ 和 $b$ 的疏远度加上 $b$ 和 $c$ 疏远度。
选定两个人,问如何作介绍,使得 $a$ 和 $b$ 的疏远度最小?无法介绍来认识输出 !
Input
第一行两个正整数 $n\ (2 \leq n \leq 10^3),\ m\ (1 \leq m < n)$,表示宴会的人数,和有多少对人互相认识。
接下来 $m$ 行,每行两个数 $p,\ q\ (1 \leq p,\ q \leq n,\ p \neq q)$,表示 $p$ 和 $q$ 互相认识。
接下来一行两个正整数 $a,\ b\ (1 \leq a,\ b \leq n)$,表示询问 $a$ 和 $b$ 的最小疏远度。
接下来 $m$ 行,每行两个数 $p,\ q\ (1 \leq p,\ q \leq n,\ p \neq q)$,表示 $p$ 和 $q$ 互相认识。
接下来一行两个正整数 $a,\ b\ (1 \leq a,\ b \leq n)$,表示询问 $a$ 和 $b$ 的最小疏远度。
Output
可以认识输出最小疏远度,否则输出 !。
Sample 1 Input
3 2
1 2
1 3
2 3
Sample 1 Output
2
Sample 2 Input
4 2
1 2
1 3
2 4
Sample 2 Output
!