def main(argv) (n, c) = gets.chomp.split(' ').map(&:to_i) ps = [0] * n n.times{|i| ps[i] = gets.chomp.to_i} ps.sort!{|a, b| b <=> a} cs1 = [] cs2 = [] c.times do |j| cc = gets.chomp.split(' ').map(&:to_i) if cc[0] == 1 then cs1.push(cc[1]) else # cc[0] == 2 cs2.push(cc[1]) end end cs1.sort{|a, b| b <=> a} cs2.sort{|a, b| b <=> a} total = 0 ps.each do |price| discount = 0 if cs1.size > 0 && cs2.size > 0 then if cs1[0] > cs2[0] * (price / 100) then discount = [cs1[0], price].min cs1.shift else discount = cs2[0] * (price / 100) cs2.shift end elsif cs1.size > 0 then discount = [cs1[0], price].min cs1.shift elsif cs2.size > 0 then discount = cs2[0] * (price / 100) cs2.shift end total += [price - discount, 0].max end puts total.to_s end main(ARGV) if self.to_s == 'main'