👿
今年もおつかれさまでした会をしようとしてる人たちに、またもやsummerrate君は意地悪をしようと思っているようです。
「まだ雪だるまを作ってる奴がいるな…じゃあもっともっともーっと壊してやる!!!!」
summerrate君は黒魔術を使い、街の個数分のクローンを作り、各街にばら撒きました。
ただ、おつかれさまでした会を開こうとしてる人たちも、そんなバカじゃありません。
冬が大好きな皆さんは雪が嫌いじゃないと思われますが、一旦ここはsummerrate君の味方になり、冬が好きな人が大切に作った雪玉を、””壊して””あげましょう。
:
:
ふふふ…
matcha国にはまた雪が降っています。今度はgreentea君が雪だるまを作る番になったようです。
greentea君が通る街は 個あり、街と街を相互につなぐ道が 本あります。
それぞれ街には と番号づけられており、 本目の道は街 と街 をつないでいますが、街 は街 よりも標高が高いところにあります。また 本目の道の長さは であることがわかっています。
今、greentea君は重さ の雪だるまを持ちながら街 にいます。この雪だるまは 本目の道を通るたびに重さが ずつ増えていきます。
またgreentea君は上り坂が嫌いなので、坂道を下りながら街 に向かいたいと思っています。
しかし、雪が嫌いなrate君はこのgreentea君が持っている雪だるまを壊そうと思っています。
具体的には街 を除くすべての街に対してrate君を配置し、その街にgreentea君が訪れるたびにrate君は雪だるまの重さを だけ減少させることができます。どんどん減少させていき、最終的に雪だるまの重さが 以下になった瞬間、雪だるまは溶けて無くなります。
このとき、 は正整数の範囲で決めることができ、決めた後にこの値を変更することはできません。
greentea君が雪だるまを転がしながらどのように移動したとしても雪だるまを街 に渡らせないようにするためには、 を少なくともいくつに決めることが適切か求めてください。
ただし をどんな値に決めようとその目標を達成できない場合は、その旨を報告してください。
ただし、街 からどのような移動をしたとしても各街には 度しか訪れることができないことが保証されます。
入力は以下の形式で与えられる。
greentea君が雪だるまを転がしながら雪だるまを街 に渡らせないようにするための の最小値を出力せよ。
ただし をどのような値になろうとその目標を達成できないなら -1
を出力せよ。
5 6 30 1 2 10 2 3 20 2 5 30 2 4 10 3 4 10 5 4 20
35
例えば とすると、次のように道をたどることで到達可能になってしまいます。
にすることで、街 にたどりつくときに雪だるまの大きさは 以下になります。
以下では雪だるまの大きさを 以下にすることはできない移動方法が存在してしまいます。
2 1 1 1 2 100000
100001
10000 0 100000
1
そもそも道が一つも存在しないこともあります。
このとき街 から街 にたどりつくことはできません。よって はどんな正整数でもよいので が最小です。
19 19 1225 1 2 72 3 2 97 2 4 112 2 5 112 5 6 121 6 7 77 7 8 101 8 9 114 9 10 114 10 11 121 11 12 67 12 14 104 11 13 114 13 14 105 14 15 115 15 16 116 16 17 109 17 18 97 18 19 115
189
🌟🎄