AT_ttpc2015_n 何かグラフの問題
Description
[problemUrl]: https://atcoder.jp/contests/ttpc2015/tasks/ttpc2015_n
太郎くんに$ N $頂点$ M $辺の有向グラフが与えられた。 このグラフには多重辺があるかもしれないが、自己ループとなる辺は張られていない。 また、辺$ e $に対して$ c_e $が与えられている。
太郎くんは各頂点$ v $に対して定められる$ N $個の変数$ a_v $と変数$ T $に実数値を割り当てることができる。 このとき、次の条件を満たしつつ$ T $を最小化することを考えたい。
- 条件 : 任意の辺eに対してその始点を$ u $, 終点を$ w $とすれば$ a_u\ +\ c_e $ $ \leq $ $ a_w\ +\ T $を満たす。
さらに、先ほど与えられた$ a_v $はいくつかの頂点$ v $に対しては既に値が固定されており、この変数には例外的に値を割り当てることができない。
$ T $として取りうる最小値を実数で出力せよ。どこまでも小さくできるときは"#"の1文字を出力せよ。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ K $ $ v_1 $ $ val_1 $ $ v_2 $ $ val_2 $ : $ v_K $ $ val_K $ $ u_1 $ $ w_1 $ $ c_1 $ $ u_2 $ $ w_2 $ $ c_2 $ : $ u_M $ $ w_M $ $ c_M $
- 入力における数はすべて整数である
- $ 1 $ 行目には $ N(1 $ $ \leq $ $ N $ $ \leq $ $ 2,000) $,$ M(1 $ $ \leq $ $ M $ $ \leq $ $ 2,000) $,$ K(0 $ $ \leq $ $ K $ $ \leq $ $ N) $ が空白区切りで与えられる。$ N $,$ M $はそれぞれ与えられるグラフの頂点数と辺数を表している。 $ K $は$ a $の値が既に決定されている頂点数を表す。
- 次の $ K $ 行には、既に$ a $の値が決まっている頂点の情報が与えられる。 この$ K $行のうち$ i $行目には$ v_i\ (1\ \leq\ v_i\ \leq\ N) $, $ val_i\ (-10^5\ \leq\ val_i\ \leq\ 10^5) $が空白区切りで与えられる。 これは$ a_{v_i}\ =\ val_i $であることを表している。また、$ v_i $は相異なると仮定してよい
- 次の $ M $ 行にはグラフの辺情報が与えられる。この$ M $行のうち$ i $行目には$ u_i(1\ \leq\ u_i\ \leq\ N) $ $ w_i(1\ \leq\ w_i\ \leq\ N) $ $ c_i(-10^5\ \leq\ c_i\ \leq\ 10^5) $ が空白区切りで与えられる。また、$ u_i\
\neq\ v_i $をみたす。これは有向辺が頂点$ u_i $から$ w_i $へ張られていることを表している。
Output Format
問題文にしたがって$ T $の最小値を実数で出力せよ。無限に小さくできるときは"#"の1文字を出力せよ。
答えが実数であるときには誤差は絶対誤差または相対誤差で$ 10^{-5} $の差まで許容される
出力は標準出力に行い、末尾に改行を入れること。
Explanation/Hint
### Sample Explanation 1
\- $ a $は$ a_1=0,\ a_2=-1,\ a_3=-1 $ と割り当てれば良い
### Sample Explanation 2
\- $ a $の値がすべて決まっているので条件を満たす$ T $の最小値はすぐに決まる。
### Sample Explanation 3
\- 多重辺を持つ場合もあるので注意すること