問題一覧 >
通常問題
No.1393 Median of Walk
レベル :
/ 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ :
/
解いたユーザー数 20
作問者 :
chineristAC
/ テスター :
tpyneriver
問題文最終更新日: 2023-04-04 13:15:26
問題文
N 個の整数からなる数列 A の中央値をつぎのように定義します。
- A を昇順にソートして得られる数列を A′ とする。このとき A′ の (N+1)/2 番目の要素を A の中央値とする( / は小数点以下を切り捨てる除算を表す)。
N 頂点 M 辺の重み付き有向グラフがあります。i (1≤i≤M) 番目の辺は頂点 ui から頂点 vi へ向かっており、重みは wi です。
頂点 s から頂点 t への 歩道 p=(v0=s,e1,v1,e2,…,vn−1,en,vn=t) に対し、 median(p) を数列 A=(we1,we2,…,wen) の中央値とします。
各 i=2, 3, … N について、頂点 1 から頂点 i への歩道 p に対する median(p) の最小値を出力してください。歩道が存在しない場合は −1 を出力してください。
歩道とは?(クリックで開く)
整数列 p=(v0,e1,v1,…,vn−1,en,vn) が以下の条件を満たすとき、 p は頂点 s から頂点 t への歩道であるといいます。
- v0=s,vn=t
- 辺 ei は頂点 vi−1 から頂点 vi へ向かう辺である
(単純)パスとは異なり、同じ頂点や同じ辺を通ってもよいことに注意してください。
入力
N M
u1 v1 wi
⋮
uM vM wM
- 2≤N≤1000
- 1≤M≤min(2N(N−1), 2500)
- 1≤ui, vi≤N (1≤i≤M)
- 1≤wi≤109 (1≤i≤M)
- 与えられる入力はすべて整数
- 与えられるグラフは自己ループや多重辺をもたない
出力
N−1 行出力してください。
i (1≤i≤N−1) 行目には頂点 1 から頂点 i+1 への歩道 p に対する median(p) の最小値を出力して下さい。 歩道が存在しない場合は −1 を出力してください。
最後に改行してください。
サンプル
サンプル1
入力
4 5
1 2 3
2 3 19
3 4 11
1 4 19
2 4 15
出力
3
3
3
(わかりやすさのため、以下のサンプルの説明では歩道を頂点列で表します。)
頂点 1 から 頂点 4 への歩道は 1→2→3→4,1→2→4,1→4 の 3 通りです。
たとえば 1 番目の歩道の median(p) は (w1,w2,w3)=(3, 19, 11) の中央値である 11 です。
ほかの歩道についても同様に median(p) を求めると 3,19 になるので、 3 行目にはこれらの最小値である 3 を出力します。
サンプル2
入力
8 8
1 2 10
2 3 11
3 4 5
4 5 8
5 3 2
3 6 12
6 7 19
8 5 4
出力
10
5
5
5
5
5
-1
頂点 1 から頂点 7 への歩道 1→2→3→4→5→3→4→5→3→6→7 の median(p) は 5 になり、 median(p) がこれより小さくなる歩道は存在しないので 6 行目には 5 を出力します。
頂点 1 から頂点 8 への歩道は存在しないので 7 行目には −1 を出力します。
サンプル3
入力
10 20
1 2 12
2 3 81
2 4 50
3 5 98
5 6 75
6 7 15
3 8 40
3 9 75
7 10 86
1 5 11
2 9 99
8 9 12
6 9 96
1 3 93
5 9 37
5 7 17
7 8 96
1 8 49
2 7 79
4 7 82
出力
12
12
12
11
11
11
15
11
15
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。