結果
| 問題 |
No.1565 Union
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-11-15 10:35:46 |
| 言語 | Ruby (3.4.1) |
| 結果 |
MLE
|
| 実行時間 | - |
| コード長 | 515 bytes |
| コンパイル時間 | 43 ms |
| コンパイル使用メモリ | 7,424 KB |
| 実行使用メモリ | 602,496 KB |
| 最終ジャッジ日時 | 2024-12-14 08:20:43 |
| 合計ジャッジ時間 | 65,649 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 3 TLE * 5 MLE * 19 |
コンパイルメッセージ
Syntax OK
ソースコード
N, M = gets.split(" ").map{|s| s.to_i}
cost = Array.new(N) {Array.new(N, Float::INFINITY)}
M.times {
a, b = gets.split(" ").map{|s| s.to_i}
cost[a-1][b-1] = cost[b-1][a-1] = 1
}
d = Array.new(N, Float::INFINITY)
used = Array.new(N, false)
d[0] = 0
loop {
v = -1
0.upto(N-1) {|u|
v = u if not used[u] and (v == -1 or d[u] < d[v])
}
break if v == -1
used[v] = true
0.upto(N-1) {|u|
if d[u] > d[v] + cost[v][u] then
d[u] = d[v] + cost[v][u]
end
}
}
puts d[N-1] == Float::INFINITY ? -1 : d[N-1]