問題文
頂点に から までの番号がついた 頂点 辺の単純連結無向グラフが与えられます。
番目の辺は頂点 と頂点 を結んでいて、ラベル が付与されています。
ここで、 は ( または ) です。
頂点 を始点、頂点 を終点とするウォークのうち、通過した辺のラベルを通過順に並べた文字列が正しいかっこ列であるようなものを、 良いウォーク と呼びます。
良いウォークが存在するか判定してください。
存在する場合は、良いウォークの長さとしてありえる値の最小値を求めてください。
ウォークとは
グラフ上の経路のうち、同じ頂点や同じ辺を複数回通っても良いものです。また、通った辺の数をウォークの長さと言います。
正しいかっこ列とは
文字列中に部分文字列として含まれる () を 回以上繰り返し削除することで、空文字列にできる文字列です。
制約
- は整数
- は整数
- は
(または) - 与えられるグラフは単純連結無向グラフ
入力
入力は以下の形式で標準入力から与えられる。
出力
良いウォークが存在する場合は、その長さとしてあり得る値の最小値を出力してください。
存在しない場合は、 -1 を出力してください。
サンプル 1
入力
6 6
1 2 (
1 3 )
2 3 )
3 4 (
3 5 )
5 6 )
出力
6
頂点を の順にたどるウォークは、通過した辺のラベルを辺の通過順に並べると ()(()) になるため、良いウォークです。長さが 未満の良いウォークは存在しないため、 が答えです。
ウォークでは同じ頂点や同じ辺を複数回通っても良いことに注意してください。
サンプル 2
入力
6 6
1 2 (
1 3 )
2 3 )
3 4 )
3 5 (
4 6 (
出力
-1
良いウォークは存在しません。
サンプル 3
入力
6 5
1 2 (
1 3 )
3 4 )
4 5 )
5 6 )
出力
8
ログインして解答を提出
解答の提出や採点結果の確認には、ログインが必要です。
ログインする