N = gets.to_i L = gets.split.take(N).map(&:to_i) Q = gets.to_i K = gets.split.take(Q).map(&:to_i) pq = L.map.with_index{|l, i|[l, i, 1.0]}.sort res = [0] K.max.times{ l, i, div = pq.pop res << l div1 = div + 1 l1 = L[i] / div1 new_item = [l1, i, div1] pq[pq.bsearch_index{|v,_,_| v < l1 }||pq.size, 0] = [new_item] } K.each{|i| p res[i] }