Submission

Status:

[PPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: mantaggez

Problemset: ฮีโร่และมอนสเตอร์

Language: cpp

Time: 0.591 second

Submitted On: 2026-03-12 16:51:43

#include <bits/stdc++.h>

using namespace std;
using ll = long long;
using pii = pair<ll, ll>;

const ll nx = 2e5+5;
const ll mx = 8e5+5;

ll n, m, h[nx];
vector<ll> idx;
vector<pii> mon;
map<ll, ll> mp;

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin >> n >> m;
    for(ll i=1;i<=n;i++) cin >> h[i];
    for(ll i=1;i<=m;i++)
    {
        ll p, c;
        cin >> p >> c;
        idx.push_back(p);
        mon.push_back({p, c});
    }

    sort(idx.begin(), idx.end());
    idx.erase(unique(idx.begin(), idx.end()), idx.end());
    sort(mon.begin(), mon.end());

    ll cur = 0;
    for(auto& [p, c] : mon)
    {
        cur += c;
        mp[p] = cur;
    }

    for(ll i=1;i<=n;i++)
    {
        auto it = upper_bound(idx.begin(), idx.end(), h[i]);
        if(it == idx.begin()) cout << 0 << '\n';
        else it--, cout << mp[*it] << '\n';
    }

    return 0;
}