#include<bits/stdc++.h>
using namespace std;
bool comp(pair<long,long>p1,pair<long,long>p2){
if(p1.second > p2.second){
return 1;
}
else if(p1.second == p2.second){
if(p1.first < p2.first){
return 1;
}else{
return 0;
}
}
return 0;
}
long solve(vector<long>boxes,vector<long>unitsPerBox, int truckSize){
vector<pair<long,long>>v;
for(int i=0;i<boxes.size();i++){
v.push_back({boxes[i],unitsPerBox[i]});
}
sort(v.begin(),v.end(),comp);
int n = unitsPerBox.size();
long ans =0;
for(int i=0;i<n;i++){
if(truckSize >= v[i].first ){
ans += v[i].second * v[i].first;
truckSize -= v[i].first;
}
else if(truckSize < v[i].first && truckSize!=0){
ans += truckSize*v[i].second;
truckSize =0;
break;
}
}
return ans;
}
int main() {
vector<long>boxes {1,6,3};
vector<long>unit {7,4,2};
cout<<solve(boxes,unit,6);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmJvb2wgY29tcChwYWlyPGxvbmcsbG9uZz5wMSxwYWlyPGxvbmcsbG9uZz5wMil7CglpZihwMS5zZWNvbmQgPiBwMi5zZWNvbmQpewoJCXJldHVybiAxOwoJfQoJZWxzZSBpZihwMS5zZWNvbmQgPT0gcDIuc2Vjb25kKXsKCQlpZihwMS5maXJzdCA8IHAyLmZpcnN0KXsKCQkJcmV0dXJuIDE7CgkJfWVsc2V7CgkJCXJldHVybiAwOwoJCX0KCX0KCXJldHVybiAwOwp9Cgpsb25nIHNvbHZlKHZlY3Rvcjxsb25nPmJveGVzLHZlY3Rvcjxsb25nPnVuaXRzUGVyQm94LCBpbnQgdHJ1Y2tTaXplKXsKCXZlY3RvcjxwYWlyPGxvbmcsbG9uZz4+djsKCWZvcihpbnQgaT0wO2k8Ym94ZXMuc2l6ZSgpO2krKyl7CgkJdi5wdXNoX2JhY2soe2JveGVzW2ldLHVuaXRzUGVyQm94W2ldfSk7Cgl9Cglzb3J0KHYuYmVnaW4oKSx2LmVuZCgpLGNvbXApOwoJaW50IG4gPSB1bml0c1BlckJveC5zaXplKCk7Cglsb25nIGFucyA9MDsKCQoJCgkKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWlmKHRydWNrU2l6ZSA+PSB2W2ldLmZpcnN0ICl7CgkJCWFucyArPSB2W2ldLnNlY29uZCAqIHZbaV0uZmlyc3Q7CgkJCXRydWNrU2l6ZSAtPSB2W2ldLmZpcnN0OwoJCX0KCQllbHNlIGlmKHRydWNrU2l6ZSA8IHZbaV0uZmlyc3QgJiYgdHJ1Y2tTaXplIT0wKXsKCQkJYW5zICs9IHRydWNrU2l6ZSp2W2ldLnNlY29uZDsKCQkJdHJ1Y2tTaXplID0wOwoJCQlicmVhazsKCQl9Cgl9CglyZXR1cm4gYW5zOwp9CgppbnQgbWFpbigpIHsKCXZlY3Rvcjxsb25nPmJveGVzIHsxLDYsM307Cgl2ZWN0b3I8bG9uZz51bml0IHs3LDQsMn07Cgljb3V0PDxzb2x2ZShib3hlcyx1bml0LDYpOwoJcmV0dXJuIDA7Cn0=