POH vol.1挑戦
新人女子プログラマの書いたコードを直すだけの簡単なお仕事です!|paizaオンラインハッカソンVol.1をやってなかったので挑戦。
# 問題読み込み m,n = gets.chomp.split.map &:to_i items = m.times.map { gets.chomp.to_i } cprices = n.times.map {gets.chomp.to_i } ## 前処理 # 同じ価格の商品をグループ化 item_count = items.group_by {|v| v}.each_with_object({}) {|(k,v),o| o[k] = v.size } # 価格をソートしておく item_price = item_count.keys.sort cprices.each {|target_price| # キャンペーン価格を下げながら検査 puts target_price.downto(10).find {|down_price| item_price.select {|p| p < down_price }.find {|p| e = item_count[down_price - p] || 0 p * 2 == down_price ? e > 1 : e > 0 # 同じ価格の商品2種類の場合の対処 } } || 0 }