結果
問題 |
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