AT_abc338_f [ABC338F] Negative Traveling Salesman

Description

[problemUrl]: https://atcoder.jp/contests/abc338/tasks/abc338_f $ N $ 頂点 $ M $ 辺の重み付き単純有向グラフがあります。 頂点には $ 1 $ から $ N $ までの番号が付けられていて、$ i $ 本目の辺は頂点 $ U_i $ から頂点 $ V_i $ に伸びる重み $ W_i $ の辺です。 ここで、重みは負の値を取ることもありますが、負閉路は存在しません。 全ての頂点を一度以上通るようなウォークが存在するかどうか判定し、存在するならば通る辺の重みの総和の最小値を求めてください。 ただし、同じ辺を複数回通る場合、その辺の重みは通った回数分加算されるものとします。 なお、「全ての頂点を一度以上通るようなウォーク」とは、頂点の列 $ v_1,v_2,\dots,v_k $ であって以下の条件を共に満たすもののことを言います。 - すべての $ i\ (1\leq\ i\leq\ k-1) $ について、頂点 $ v_i $ から頂点 $ v_{i+1} $ に伸びる辺が存在する - すべての $ j\ (1\leq\ j\leq\ N) $ について、$ v_i=j $ を満たす $ i\ (1\leq\ i\leq\ k) $ が存在する

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ M $ $ U_1 $ $ V_1 $ $ W_1 $ $ U_2 $ $ V_2 $ $ W_2 $ $ \vdots $ $ U_M $ $ V_M $ $ W_M $

Output Format

全ての頂点を一度以上通るようなウォークが存在するならば通る辺の重みの総和の最小値を、存在しないならば `No` を出力せよ。

Explanation/Hint

### 制約 - $ 2\leq\ N\ \leq\ 20 $ - $ 1\leq\ M\ \leq\ N(N-1) $ - $ 1\leq\ U_i,V_i\ \leq\ N $ - $ U_i\ \neq\ V_i $ - $ (U_i,V_i)\ \neq\ (U_j,V_j)\ (i\neq\ j) $ - $ -10^6\leq\ W_i\ \leq\ 10^6 $ - 与えられるグラフに負閉路は存在しない - 入力は全て整数 ### Sample Explanation 1 頂点 $ 2\rightarrow\ 1\rightarrow\ 2\rightarrow\ 3 $ の順に辿ると、全ての頂点を一度以上通ることができ、通る辺の重みの総和は $ (-3)+5+(-4)=-2 $ になります。 これが最小です。 ### Sample Explanation 2 全ての頂点を一度以上通るようなウォークは存在しません。