#include<bits/stdc++.h>
using namespace std;
 
struct item{
    int weight;
    int profit;
    float u_profit;
};
 
bool cmp(item a, item b){
    return a.u_profit > b.u_profit;
}
 
double profit = 0;
 
double fractional_knapsack(item items[], int n, int knapsack){
 
    sort(items, items+n, cmp);
 
 
    for(int i = 0; i < n; i++){
 
        if(items[i].weight <= knapsack){
            knapsack -= items[i].weight;
            profit += items[i].profit;
        }
 
        else{
 
            profit += (items[i].u_profit * knapsack);
            knapsack = 0;
            break;
        }
    }
    return profit;
}
 
 
int main(){
    int knapsack = 11;
    int weight[] = {7, 5, 4, 3, 2};
    int profit_arr[] = {15, 10, 20, 14, 12};
    int n = sizeof(weight) / sizeof(weight[0]);
    struct item items[5];
 
    for(int i = 0; i < n; i++){
        items[i].weight = weight[i];
        items[i].profit = profit_arr[i];
 
 
        items[i].u_profit = (float)items[i].profit / items[i].weight;
    }
 
    fractional_knapsack(items, n, knapsack);
 
 
    cout << profit << endl;
 
    return 0;
}
 
				I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBpdGVtewogICAgaW50IHdlaWdodDsKICAgIGludCBwcm9maXQ7CiAgICBmbG9hdCB1X3Byb2ZpdDsKfTsKCmJvb2wgY21wKGl0ZW0gYSwgaXRlbSBiKXsKICAgIHJldHVybiBhLnVfcHJvZml0ID4gYi51X3Byb2ZpdDsKfQoKZG91YmxlIHByb2ZpdCA9IDA7Cgpkb3VibGUgZnJhY3Rpb25hbF9rbmFwc2FjayhpdGVtIGl0ZW1zW10sIGludCBuLCBpbnQga25hcHNhY2spewoKICAgIHNvcnQoaXRlbXMsIGl0ZW1zK24sIGNtcCk7CgoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewoKICAgICAgICBpZihpdGVtc1tpXS53ZWlnaHQgPD0ga25hcHNhY2spewogICAgICAgICAgICBrbmFwc2FjayAtPSBpdGVtc1tpXS53ZWlnaHQ7CiAgICAgICAgICAgIHByb2ZpdCArPSBpdGVtc1tpXS5wcm9maXQ7CiAgICAgICAgfQoKICAgICAgICBlbHNlewoKICAgICAgICAgICAgcHJvZml0ICs9IChpdGVtc1tpXS51X3Byb2ZpdCAqIGtuYXBzYWNrKTsKICAgICAgICAgICAga25hcHNhY2sgPSAwOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gcHJvZml0Owp9CgoKaW50IG1haW4oKXsKICAgIGludCBrbmFwc2FjayA9IDExOwogICAgaW50IHdlaWdodFtdID0gezcsIDUsIDQsIDMsIDJ9OwogICAgaW50IHByb2ZpdF9hcnJbXSA9IHsxNSwgMTAsIDIwLCAxNCwgMTJ9OwogICAgaW50IG4gPSBzaXplb2Yod2VpZ2h0KSAvIHNpemVvZih3ZWlnaHRbMF0pOwogICAgc3RydWN0IGl0ZW0gaXRlbXNbNV07CgogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgaXRlbXNbaV0ud2VpZ2h0ID0gd2VpZ2h0W2ldOwogICAgICAgIGl0ZW1zW2ldLnByb2ZpdCA9IHByb2ZpdF9hcnJbaV07CgoKICAgICAgICBpdGVtc1tpXS51X3Byb2ZpdCA9IChmbG9hdClpdGVtc1tpXS5wcm9maXQgLyBpdGVtc1tpXS53ZWlnaHQ7CiAgICB9CgogICAgZnJhY3Rpb25hbF9rbmFwc2FjayhpdGVtcywgbiwga25hcHNhY2spOwoKCiAgICBjb3V0IDw8IHByb2ZpdCA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==