Submission
Status:
[PPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: 38408
Problemset: ฮีโร่และมอนสเตอร์
Language: cpp
Time: 0.222 second
Submitted On: 2026-10-15 15:13:07
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
cin >> n >> m;
vector<int> power(n, 0);
vector<pair<int, long long>> mon;
vector<long long> money(n, 0);
for (int i = 0; i < n; i++) {
cin >> power[i];
}
for (int i = 0; i < m; i++) {
int x, y;
cin >> x >> y;
mon.push_back({x, y});
}
sort(mon.begin(), mon.end());
for (int i = 1; i < m; i++) {
mon[i].second += mon[i - 1].second;
}
for (int i = 0; i < n; i++) {
int pos = upper_bound( mon.begin(), mon.end(),pair<int, long long>{power[i], LLONG_MAX}) - mon.begin();
if (pos > 0) {
money[i] = mon[pos - 1].second;
}
cout << money[i] << '\n';
}
return 0;
}