Submission

Status:

[PPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: kittipos

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

Language: cpp

Time: 0.204 second

Submitted On: 2026-03-09 19:32:53

#include <bits/stdc++.h>

using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, m;
    cin >> n >> m;

    vector<int> heros;
    heros.resize(n);
    for (int i = 0; i < n; i++) {
        cin >> heros[i];
    }

    vector<pair<int, int64_t>> mons;
    mons.resize(m);
    for (int i = 0; i < m; i++) {
        cin >> mons[i].first;
        cin >> mons[i].second;
    }
    sort(mons.begin(), mons.end());
    for (int i = 1; i < m; i++) {
        mons[i].second += mons[i-1].second;
    }

    for (int i = 0; i < n; i++) {
        auto it = upper_bound(mons.begin(), mons.end(), make_pair(heros[i], numeric_limits<int64_t>::max()));
        if (it == mons.begin()) {
            cout << "0\n";
            continue;
        }
        it--;
        cout << it->second << '\n';
    }

    return 0; 
}