結果

問題 No.91 赤、緑、青の石
ユーザー DialBird
提出日時 2017-03-09 14:58:11
言語 Ruby
(3.4.1)
結果
AC  
実行時間 94 ms / 5,000 ms
コード長 504 bytes
コンパイル時間 199 ms
コンパイル使用メモリ 7,424 KB
実行使用メモリ 12,416 KB
最終ジャッジ日時 2024-06-24 07:04:08
合計ジャッジ時間 4,115 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 28
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

class Yukicoder
  def initialize
    @stones = gets.chomp.split.map(&:to_i)
  end

  def run
    min = @stones.min
    max = @stones.max
    bs(min, max)
  end

  def bs(min, max)
    mid = (min + max) / 2
    if mid == min
      mid
    else
      check(mid) ? bs(mid, max) : bs(min, mid)
    end
  end

  def check(n)
    lack = @stones.inject(0){ |t, s| t + ((s < n) ? n - s : 0) }
    plus = @stones.inject(0){ |t, s| t + ((n < s) ? (s - n)/2 : 0) }
    lack <= plus
  end
end

puts Yukicoder.new.run
0