*d=s=0 gets.to_i.times{a,b=gets.split.map &:to_i s+=b (10**5).downto(a){|i|d[i]=[d[i]||0,(d[i-a]||0)+b].max}} i=-1 p d.map{|d|[i+=1,s-(d||0)].max}.min