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';
}