Submission

Status:

[PPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: theem1502

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

Language: cpp

Time: 0.508 second

Submitted On: 2026-02-21 00:09:54

#include <bits/stdc++.h>
using namespace std;

int main() {
    long long n, m;
    cin >> n >> m;
    vector<long long> hero(n);
    vector<pair<long long,long long>> thearray(m);
    for (long long i = 0; i < n; i++) {
        cin >> hero[i];
    }
    for (long long  i = 0; i < m; i++) {
        cin >> thearray[i].first >> thearray[i].second;
    }
    sort(thearray.begin(),thearray.end());
    vector<long long> prefixarray(m);
    vector<long long> indexarray(m);
    prefixarray[0] = thearray[0].second;
    for (long long i = 0; i < m; i++) {
        indexarray[i] = thearray[i].first;
        if (i == 0) {
        continue;}
        prefixarray[i] = prefixarray[i-1] + thearray[i].second;
    }

    for (long long i = 0; i < n ;i++) {
        long long cnt = upper_bound(indexarray.begin(), indexarray.end(), hero[i]) - indexarray.begin() - 1;
        //cout << "cnt " << cnt << "\n";
        if (cnt == -1) {
            cout << 0 << "\n";
            continue;
        }
        cout << prefixarray[cnt] << "\n";
    }


}