#abc277e. [abc277_e]Crystal Switches
[abc277_e]Crystal Switches
题目描述
给定一个包含 个顶点和 条边的无向图。对于 ,第 条边是连接顶点 和 的无向边。如果 ,则该边最初是可通过的;如果 ,则该边最初是不可通过的。此外,有 个顶点上有开关:顶点 、顶点 、、顶点 。
高桥最初位于顶点 ,并且会重复执行以下两种操作中的一种,移动 或 触发开关,他每次可以自由选择其中一种操作,且可以重复多次操作。
- 移动:选择通过某条边与当前所在节点相邻的节点,并移动到该节点。
- 触发开关:如果所在节点上有开关,则触发开关。这会翻转图中所有边的可通过性。也就是说,原本可通过的边变为不可通过,原本不可通过的边变为可通过。
判断高桥是否能到达顶点 ,如果能到达,输出高桥在到达顶点 之前执行 移动 操作的最小次数。
约束条件
- 输入中的所有值都是整数。
输入
从标准输入读取输入数据,输入格式如下:
输出
如果高桥无法到达顶点 ,输出 ;如果能够到达,输出高桥在到达顶点 之前执行 移动 操作的最小次数。
样例输入 1
5 5 2
1 3 0
2 3 1
5 4 1
2 1 1
1 4 0
3 4
样例输出 1
5
高桥可以按照以下方式到达顶点 。
- 从顶点 移动到顶点 。
- 从顶点 移动到顶点 。
- 触发顶点 上的开关。这会翻转图中所有边的可通过性。
- 从顶点 移动到顶点 。
- 从顶点 移动到顶点 。
- 触发顶点 上的开关。这会再次翻转图中所有边的可通过性。
- 从顶点 移动到顶点 。
在这里,总共执行了五次移动操作,这是最小可能次数。
样例输入 2
4 4 2
4 3 0
1 2 1
1 2 0
2 1 1
2 4
样例输出 2
-1
所给出的图可能是不连通的或包含多条边。在这个样例输入中,高桥无法到达顶点 ,因此应该输出 。