#include #include #include #include #include #include #include #include #include using namespace std; int main(){ int n; cin >> n; vector l(n); for(int i=0; i> l[i]; int Q; cin >> Q; vector k(Q); for(int i=0; i> k[i]; priority_queue< pair > pq; for(int i=0; i ans(m+1); vector cut(n,1); for(int i=1; i<=m; i++){ //カット後の長さが一番長い棒 pair p = pq.top(); pq.pop(); double L = p.first; int id = p.second; //i個にカットすると長さはLとなる ans[i] = L; //cut[id]個に切られている棒を更に切って(cut[id]+1)個にする //全体は(i+1)個の棒になる cut[id] += 1; //切った棒をpriority_queueに保管する pq.push( make_pair( l[id]/(double)(cut[id]), id ) ); } //よくわからんぽよ for(int i=0; i