数学パズル 緑 10 @ruby
data = [] File.open("q_10.txt") do |f| f.readlines.each do |row| data << row.split(',')[1].to_i end end N = 289 left = 1 right = data.max center = (left + right) / 2 loop do sum = 0 data.each do |i| sum += (i.to_f / center).ceil end if sum == N break elsif sum > N left = center center = (center + right) / 2 else right = center center = (center + left) / 2 end end data.each do |i| puts (i.to_f / center).ceil end