結果
| 問題 | No.17 2つの地点に泊まりたい | 
| コンテスト | |
| ユーザー |  neko_the_shadow | 
| 提出日時 | 2019-05-30 14:38:12 | 
| 言語 | Ruby (3.4.1) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 99 ms / 5,000 ms | 
| コード長 | 522 bytes | 
| コンパイル時間 | 73 ms | 
| コンパイル使用メモリ | 7,552 KB | 
| 実行使用メモリ | 12,800 KB | 
| 最終ジャッジ日時 | 2024-09-17 16:07:14 | 
| 合計ジャッジ時間 | 3,413 ms | 
| ジャッジサーバーID (参考情報) | judge5 / judge6 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 27 | 
コンパイルメッセージ
Syntax OK
ソースコード
n = gets.to_i
s = n.times.map{ gets.to_i }
m = gets.to_i
a, b, c = m.times.map{ gets.split.map(&:to_i) }.transpose
wf = Array.new(n){ Array.new(n, Float::INFINITY) }
n.times{|i| wf[i][i] = 0 }
m.times{|i| wf[a[i]][b[i]] = wf[b[i]][a[i]] = c[i]}
n.times do |k|
  n.times do |i|
    n.times do |j|
      wf[i][j] = [wf[i][j], wf[i][k] + wf[k][j]].min
    end
  end 
end
ans = [*1..(n - 2)].permutation(2)
                   .map{|x, y| (wf[0][x] + wf[x][y] + wf[y][n - 1]) + (s[x] + s[y])}
                   .min
puts ans
            
            
            
        