結果

問題 No.977 アリス仕掛けの摩天楼
ユーザー TomoProg
提出日時 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

ソースコード

diff #

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
0