#include <bits/stdc++.h>
using namespace std;
int main() {
// your code goes here
vector<int> price = {2,5,1};
vector<int> query = {8,4,3}; //ans: 16,6,5
// vector<int> price = {1,2,3};
// vector<int> query = {3,2,1,5}; //ans: 3,2,3,9
int n = price.size();
vector<int> ans(query.size(),0);
// sort
sort(price.begin(), price.end());
// prefix:-
vector<int> p(n,0);
p[0] = price[0];
for(int i=1; i<n; i++){
p[i] = p[i-1] + price[i];
}
for(int i=0; i<query.size(); i++){
auto it = lower_bound(price.begin(), price.end(), query[i]);
int id = it - price.begin();
cout<< "found id="<<id<<"for query[i]=" << query[i]<<endl;
//for <id
ans[i] = query[i]*id - p[id-1];
//for >= id
ans[i] += p[n-1]-p[id-1] - (n-id)*query[i];
cout<< ans[i]<< endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQoJdmVjdG9yPGludD4gcHJpY2UgPSB7Miw1LDF9OwoJdmVjdG9yPGludD4gcXVlcnkgPSB7OCw0LDN9OyAvL2FuczogMTYsNiw1CgkKCS8vIHZlY3RvcjxpbnQ+IHByaWNlID0gezEsMiwzfTsKCS8vIHZlY3RvcjxpbnQ+IHF1ZXJ5ID0gezMsMiwxLDV9OyAvL2FuczogMywyLDMsOQoJCglpbnQgbiA9IHByaWNlLnNpemUoKTsKCQogICAgdmVjdG9yPGludD4gYW5zKHF1ZXJ5LnNpemUoKSwwKTsKICAgIAogICAgLy8gc29ydAogICAgc29ydChwcmljZS5iZWdpbigpLCBwcmljZS5lbmQoKSk7CiAgICAKICAgIC8vIHByZWZpeDotCiAgICB2ZWN0b3I8aW50PiBwKG4sMCk7CiAgICBwWzBdID0gcHJpY2VbMF07CiAgICBmb3IoaW50IGk9MTsgaTxuOyBpKyspewogICAgCXBbaV0gPSBwW2ktMV0gKyBwcmljZVtpXTsKICAgIH0KCQogICAgZm9yKGludCBpPTA7IGk8cXVlcnkuc2l6ZSgpOyBpKyspewogICAgCQogICAgICAgIGF1dG8gaXQgPSBsb3dlcl9ib3VuZChwcmljZS5iZWdpbigpLCBwcmljZS5lbmQoKSwgcXVlcnlbaV0pOwogICAgICAgIAogICAgICAgIGludCBpZCA9IGl0IC0gcHJpY2UuYmVnaW4oKTsKICAgIAkKICAgICAgICBjb3V0PDwgImZvdW5kIGlkPSI8PGlkPDwiZm9yIHF1ZXJ5W2ldPSIgPDwgcXVlcnlbaV08PGVuZGw7CgkJCQogICAgICAgIC8vZm9yIDxpZAogICAgICAgIGFuc1tpXSA9IHF1ZXJ5W2ldKmlkIC0gcFtpZC0xXTsKICAgIAkKICAgICAgICAvL2ZvciA+PSBpZAogICAgICAgIGFuc1tpXSArPSBwW24tMV0tcFtpZC0xXSAtIChuLWlkKSpxdWVyeVtpXTsKCSAgICBjb3V0PDwgYW5zW2ldPDwgZW5kbDsKICAgIH0KICAgIAogICAgcmV0dXJuIDA7Cgp9Cg==