結果
| 問題 |
No.1639 最小通信路
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-11-01 14:43:38 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 139 ms / 2,000 ms |
| コード長 | 517 bytes |
| コンパイル時間 | 253 ms |
| コンパイル使用メモリ | 7,296 KB |
| 実行使用メモリ | 12,672 KB |
| 最終ジャッジ日時 | 2024-10-10 03:38:21 |
| 合計ジャッジ時間 | 6,771 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 43 |
コンパイルメッセージ
Syntax OK
ソースコード
N = gets.to_i
cost = Array.new(N) {Array.new(N, Float::INFINITY)}
(N*(N-1)/2).times {
a, b, c = gets.split(" ").map{|s| s.to_i}
cost[a-1][b-1] = cost[b-1][a-1] = c
}
mincost = Array.new(N, Float::INFINITY)
used = Array.new(N, false)
mincost[0] = 0
res = 0
loop {
v = -1
0.upto(N-1) {|u|
v = u if !used[u] and (v == -1 or mincost[u] < mincost[v])
}
break if v == -1
used[v] = true
res = mincost[v] if res < mincost[v]
0.upto(N-1) {|u|
mincost[u] = cost[v][u] if mincost[u] > cost[v][u]
}
}
puts res