結果

問題 No.160 最短経路のうち辞書順最小
ユーザー gigurururu
提出日時 2015-03-02 01:18:54
言語 Ruby
(3.4.1)
結果
WA  
実行時間 -
コード長 336 bytes
コンパイル時間 108 ms
コンパイル使用メモリ 7,424 KB
実行使用メモリ 13,184 KB
最終ジャッジ日時 2024-06-24 00:54:35
合計ジャッジ時間 45,215 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3 WA * 1
other AC * 5 WA * 21
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

def g;gets.split.map(&:to_i)end
N,M,S,G=g
L=(0...N).map{[1e9]*N}
d=L.map{[]}
N.times{|i|L[i][i]=0}
M.times{
  a,b,c=g
  L[a][b]=L[b][a]=c
  d[a][b]=d[b][a]=1
}
N.times{|k|N.times{|i|N.times{|j|L[i][j]=[L[i][j],L[i][k]+L[k][j]].min}}}
ans=[s=S]
while s!=G
  ans<<s=(0...N).find{|i|(L[s][i]+L[i][G]==L[s][G])&&d[s][i]==1}
end
puts ans*" "
0