Submission
Status:
[PPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: theem1502
Problemset: ฮีโร่และมอนสเตอร์
Language: cpp
Time: 0.508 second
Submitted On: 2026-02-21 00:09:54
#include <bits/stdc++.h>
using namespace std;
int main() {
long long n, m;
cin >> n >> m;
vector<long long> hero(n);
vector<pair<long long,long long>> thearray(m);
for (long long i = 0; i < n; i++) {
cin >> hero[i];
}
for (long long i = 0; i < m; i++) {
cin >> thearray[i].first >> thearray[i].second;
}
sort(thearray.begin(),thearray.end());
vector<long long> prefixarray(m);
vector<long long> indexarray(m);
prefixarray[0] = thearray[0].second;
for (long long i = 0; i < m; i++) {
indexarray[i] = thearray[i].first;
if (i == 0) {
continue;}
prefixarray[i] = prefixarray[i-1] + thearray[i].second;
}
for (long long i = 0; i < n ;i++) {
long long cnt = upper_bound(indexarray.begin(), indexarray.end(), hero[i]) - indexarray.begin() - 1;
//cout << "cnt " << cnt << "\n";
if (cnt == -1) {
cout << 0 << "\n";
continue;
}
cout << prefixarray[cnt] << "\n";
}
}