結果
問題 |
No.17 2つの地点に泊まりたい
|
ユーザー |
|
提出日時 | 2017-06-04 19:00:00 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 477 ms / 5,000 ms |
コード長 | 675 bytes |
コンパイル時間 | 42 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 12,544 KB |
最終ジャッジ日時 | 2024-10-15 01:41:11 |
合計ジャッジ時間 | 7,555 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 27 |
コンパイルメッセージ
Syntax OK
ソースコード
def f(start, last) distances = Edges.dup N.times{|i| N.times{|ii| N.times{|iii| distances[[ii,iii]] = [distances[[ii,iii]], distances[[i,ii]] + distances[[i,iii]]].min } } } N.times.map{|i| next 1.0/0 if i == start || i == last N.times.map{|ii| next 1.0/0 if i == ii || ii == start || ii == last Stays[i] + Stays[ii] + distances[[start,i]] + distances[[i,ii]] + distances[[ii,last]] }.min }.min end N =gets.to_i Stays = N.times.map{gets.to_i} M = gets.to_i Edges = M.times.inject(Hash.new(1.0/0)){|r,i| *from_to, cost = gets.split.map(&:to_i) r[from_to] = cost r[from_to.rotate] = cost r } p f(0, N-1)