Submission
Status:
[P-SSSSSSSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: someone
Problemset: ฮีโร่และมอนสเตอร์
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-09 20:41:12
#include<bits/stdc++.h>
#define ll long long
#define f first
#define s second
using namespace std;
int main() {
cin.tie(nullptr)->sync_with_stdio(0);
ll n, m;
cin >> n >> m;
// map<ll, ll> coins;
vector<pair<ll, ll>> coins(m+1);
vector<pair<ll, ll>> hero(n+1);
vector<ll> ans(n+1);
vector<ll> power(1, 0);
for (ll i = 1 ; i <= n ; i++) {
int p;
cin >> p;
hero[i] = {p, i};
};
for (ll i = 1 ; i <= m ; i++) cin >> coins[i].f >> coins[i].s;
sort(coins.begin(), coins.end());
sort(hero.begin(), hero.end());
// cout << "hero " << endl;
// for (auto h : hero) {
// cout << h.f << ' ' << h.s << endl;
// }
ll i = 1, prev = -1, sum = 0, last_p;
for (auto pa : coins) {
ll p = pa.f;
ll c = pa.s;
// cout << p << ' ' << c << endl;
// cout << "check : " << hero[i].f << ' ' << p << endl;
while(i <= n && hero[i].f < p) {
ans[hero[i].s] = sum;
i++;
}
sum += c;
last_p = p;
}
while(i <= n && hero[i].f > last_p) {
ans[hero[i].s] = sum;
i++;
}
// for (ll i = 1; i <= m ; i++) {
// cout << power[i] << ' ';
// }
// cout << endl;
// for (ll i = 1 ; i <= m ; i++) {
// cout << qs[i] << ' ';
// }
// cout << endl;
// for (ll i = 0 ; i < n ; i++) {
// auto index = upper_bound(power.begin(), power.end(), hero[i]) - power.begin() - 1;
// cout << qs[index] << '\n';
// }
for (int i = 1 ; i <= n ; i++) cout << ans[i] << '\n';
}