Submission

Status:

[PPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: 38408

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

Language: cpp

Time: 0.222 second

Submitted On: 2026-10-15 15:13:07


#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> power(n, 0);
    vector<pair<int, long long>> mon;
    vector<long long> money(n, 0);

    for (int i = 0; i < n; i++) {
        cin >> power[i];
    }

    for (int i = 0; i < m; i++) {
        int x, y;
        cin >> x >> y;
        mon.push_back({x, y});
    }

    sort(mon.begin(), mon.end());

    for (int i = 1; i < m; i++) {
        mon[i].second += mon[i - 1].second;
    }

    for (int i = 0; i < n; i++) {
        int pos = upper_bound( mon.begin(), mon.end(),pair<int, long long>{power[i], LLONG_MAX}) - mon.begin();

        if (pos > 0) {
            money[i] = mon[pos - 1].second;
        }

        cout << money[i] << '\n';
    }

    return 0;
}