#include using namespace std; #define int long long templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> n >> q; vector> x(n); for(int i = 0;i < n;i++){ cin >> x[i].first >> x[i].second; } sort(x.begin(), x.end()); int sx[100010] = {}; int rui[100010] = {}; int rx[100010] = {}; int r; sx[1] = 0; r = x[0].second; for(int i = 1;i < n;i++){ sx[i+1] = sx[i] + r*(x[i].first-x[i-1].first); r += x[i].second; } rx[n-1] = 0; r = x[n-1].second; for(int i = n-2;i >= 0;i--){ rx[i] = rx[i+1] + r*(x[i+1].first-x[i].first); r += x[i].second; } vector vec; for(int i = 0;i < n;i++){ vec.push_back(x[i].first); rui[i+1] = rui[i] + x[i].second; } for(int i = 0;i < q;i++){ int X; cin >> X; int idx = upper_bound(vec.begin(), vec.end(), X) - vec.begin(); cout << sx[idx] + rx[idx] + rui[idx] * (X-x[idx-1].first) + (rui[n]-rui[idx]) * (x[idx].first - X) << endl; } return 0; }