Submission
Status:
[PPPPPPPPPPPPPPPPPPPP]
Score: 100
User: njoop
Problemset: ฮีโร่และมอนสเตอร์
Language: cpp
Time: 0.402 second
Submitted On: 2025-03-25 08:51:33
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, m, h[1000010], cc, cm;
vector<pair<int, int>> mon;
vector<int> c, mo;
signed main() {
cin.tie(0)->sync_with_stdio(0);
cin >> n >> m;
for(int i=1; i<=n; i++) {
cin >> h[i];
}
for(int i=1; i<=m; i++) {
cin >> cm >> cc;
mon.push_back({cm, cc});
}
sort(mon.begin(), mon.end());
mo.push_back(-1);
c.push_back(0);
for(int i=0; i<m; i++) {
mo.push_back(mon[i].first);
c.push_back(mon[i].second);
c[i+1] += c[i];
}
for(int i=1; i<=n; i++) {
int idx = upper_bound(mo.begin(), mo.end(), h[i]) - mo.begin() - 1;
cout << c[idx] << "\n";
}
return 0;
}