AtCoder BC074 C: Sugar Water
問題
https://beta.atcoder.jp/contests/abc074/tasks/arc083_a
解法
質量の合計の最大値が3000gに対して、水は100g単位、砂糖は1g単位です。
なので、全ての組み合わせを試したとしても間に合います。
よって、4重ループで全探索すれば解けます。
実装
A, B, C, D, E, F = gets.chomp.split(" ").map(&:to_i) limit = E.to_f / (100 + E) tmp = 0 max_s =0 max_sw = 0 for a in 0..(F/100/A) for b in 0..((F-100*a*A)/100/B) next if a + b == 0 for c in 0..((F-100*a*A-100*b*B)/C) for d in 0..((F-100*a*A-100*b*B-c*C)/D) sw = c*C+d*D+a*A*100+b*A*100 s = c*C+d*D n = s.to_f / sw break if n > limit if tmp < n tmp = n max_s = s max_sw = sw end end end end end if max_s > 0 puts "#{max_sw} #{max_s}" else puts "#{100*A} #{max_s}" end