結果
| 問題 | 
                            No.977 アリス仕掛けの摩天楼
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2020-02-11 22:09:49 | 
| 言語 | Ruby  (3.4.1)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 874 bytes | 
| コンパイル時間 | 72 ms | 
| コンパイル使用メモリ | 7,552 KB | 
| 実行使用メモリ | 18,688 KB | 
| 最終ジャッジ日時 | 2024-10-01 08:18:22 | 
| 合計ジャッジ時間 | 4,075 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge1 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 18 WA * 8 | 
コンパイルメッセージ
Syntax OK
ソースコード
island_num = gets.to_i
bridge_num = island_num - 1
island_with_bridge = (0...island_num).inject({}) { |result, i| result[i] = 0; result }
bridge_num.times do
  islands = gets.split
  island_with_bridge[islands[0].to_i] += 1
  island_with_bridge[islands[1].to_i] += 1
end
if !island_with_bridge.values.find { |v| v == 0 }
  # すべての島が繋がっている場合はどの橋が破壊されても繋ぎ直せる
  puts "Bob"
  return
end
if island_with_bridge.values.count { |v| v == 0 } >= 2 || island_with_bridge.values.find { |v| v == 1 }
  # 一つも橋が架かっていない島が2つ以上ある場合は、一つしか橋を架けられないため繋ぎ直せない
  # 一つしか橋が架かっていない島の橋を破壊されると、一つもかかっていない島の分を繋げないため繋ぎ直せない
  puts "Alice"
else
  puts "Bob"
end