695 vector<long double> storage(n);
696 vector<long double> sales(n);
697 vector<pair<long double, int>> unit_price(n);
698 for(
int i = 0; i < n; i++) {
701 for(
int i = 0; i < n; i++) {
704 for(
int i = 0; i < n; i++) {
705 unit_price[i] = make_pair(sales[i] / storage[i], i);
707 sort(unit_price.begin(), unit_price.end(), [](
const pair<long double, int> &a,
const pair<long double, int> &b) { return a.first > b.first; });
708 int current_amount = 0;
710 for(
int i = 0; i < n && current_amount < d; i++) {
712 if(current_amount + storage[unit_price[i].second] > d) {
713 amount = d - current_amount;
715 ans += amount * sales[unit_price[i].second] / storage[unit_price[i].second];
717 amount = storage[unit_price[i].second];
718 ans += sales[unit_price[i].second];
719 current_amount += storage[unit_price[i].second];
722 cout << fixed << setprecision(2) << ans;