// 第二题
// 回溯 枚举
void run(long long& res, int curLen, vector<int> curIDs, const int n, vector<bool>& used, int k, const vector<int>& an, const vector<int>& bn){
if(curLen == k) {
long long sum = 0;
int minV = INT_MAX;
for(int i = 0; i < k; ++i){
sum += an[curIDs[i]];
minV = min(minV, bn[curIDs[i]]);
}
res = res < sum * minV ? sum * minV : res;
return;
}
for(int i = 0; i < n; ++i){
if(used[i] == false){
curIDs.emplace_back(i);
used[i] = true;
run(res, curLen+1, curIDs, n, used, k, an, bn);
used[i] = false;
curIDs = vector<int>(curIDs.begin(), curIDs.end()-1);
}
}
}