Submission

Status:

[PPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: someone

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

Language: cpp

Time: 0.231 second

Submitted On: 2026-03-09 20:44:55

#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<ll> hero(n);
    vector<ll> qs(m+1);
    vector<ll> power(m+1);
    for (ll i = 0 ; i < n ; i++) cin >> hero[i];
    for (ll i = 1 ; i <= m ; i++) cin >> coins[i].f >> coins[i].s;
    sort(coins.begin(), coins.end());
    
    for (int i = 1 ; i <= m ; i++) {
        qs[i] = qs[i-1] + coins[i].s;
        power[i] = coins[i].f;
    }
    for (ll i = 0 ; i < n ; i++) {
        auto index = upper_bound(power.begin(), power.end(), hero[i]) - power.begin() - 1;
        cout << qs[index] << '\n';
    }
}