結果
| 問題 |
No.160 最短経路のうち辞書順最小
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 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
ソースコード
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*" "