結果
| 問題 | No.17 2つの地点に泊まりたい |
| コンテスト | |
| ユーザー |
vjudge1
|
| 提出日時 | 2026-03-15 23:41:21 |
| 言語 | Crystal (1.19.1) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 663 bytes |
| 記録 | |
| コンパイル時間 | 18,473 ms |
| コンパイル使用メモリ | 335,824 KB |
| 実行使用メモリ | 6,272 KB |
| 最終ジャッジ日時 | 2026-03-15 23:41:46 |
| 合計ジャッジ時間 | 25,034 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | RE * 28 |
ソースコード
n = gets.not_nil!.to_i
s = gets.not_nil!.split.map(&.to_i)
# Initialize graph with large values (500,000,000)
g = Array.new(n) { Array.new(n, 500_000_000) }
m = gets.not_nil!.to_i
m.times do
a, b, c = gets.not_nil!.split.map(&.to_i)
g[a][b] = c
g[b][a] = c
end
# Floyd-Warshall algorithm
n.times do |k|
n.times do |i|
n.times do |j|
if g[i][k] + g[k][j] < g[i][j]
g[i][j] = g[i][k] + g[k][j]
end
end
end
end
ans = 2_000_000_000
(1...n-1).each do |t1|
(1...n-1).each do |t2|
next if t1 == t2
cost = g[0][t1] + g[t1][t2] + g[t2][n-1] + s[t1] + s[t2]
ans = Math.min(ans, cost) if cost < ans
end
end
puts ans
vjudge1