atcoder#ABC277E. [ABC277E] Crystal Switches
[ABC277E] Crystal Switches
配点 : 点
問題文
個の頂点と 本の辺からなる無向グラフが与えられます。 について、 番目の辺は頂点 と頂点 を結ぶ無向辺であり、 ならばはじめは通行可能、 ならばはじめは通行不能です。 また、頂点 、頂点 、 、頂点 の 個の頂点にはスイッチがあります。
高橋君は、はじめ頂点 におり、「下記の移動とスイッチを押すの つの行動のどちらかを行うこと」を好きなだけ繰り返します。
- 移動 : いまいる頂点と通行可能な辺を介して隣接する頂点を つ選び、その頂点に移動する。
- スイッチを押す : いまいる頂点にスイッチがあるならば、そのスイッチを押す。その結果、グラフ上のすべての辺の通行可能・通行不能の状態が反転する。すなわち、通行可能である辺は通行不能に、通行不能である辺は通行可能に変化する。
高橋君が頂点 に到達することが可能かどうかを判定し、可能な場合は頂点 に到達するまでに行う移動の回数としてあり得る最小値を出力してください。
制約
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
出力
高橋君が頂点 に到達することが不可能な場合は を、 可能な場合は頂点 に到達するまでに行う移動の回数としてあり得る最小値を出力せよ。
5 5 2
1 3 0
2 3 1
5 4 1
2 1 1
1 4 0
3 4
5
高橋君は、下記の手順で行動することで頂点 に到達できます。
- 頂点 から頂点 に移動する。
- 頂点 から頂点 に移動する。
- 頂点 にあるスイッチを押す。これによって、グラフ上のすべての辺の通行可能・通行不能の状態が反転する。
- 頂点 から頂点 に移動する。
- 頂点 から頂点 に移動する。
- 頂点 にあるスイッチを押す。これによって、グラフ上のすべての辺の通行可能・通行不能の状態が再び反転する。
- 頂点 から頂点 に移動する。
この手順における移動の回数は 回であり、これが考えられる最小の回数です。
4 4 2
4 3 0
1 2 1
1 2 0
2 1 1
2 4
-1
与えられるグラフは、連結でないことや、多重辺を含むことがあります。 この入力例では、高橋君はどのように行動しても頂点 に到達することはできないので、 を出力します。