Submission

Status:
[PPPPPPPPPPPPPPPPPPPP]

Score: 100

User: njoop

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

Language: cpp

Time: 0.402 second

Submitted On: 2025-03-25 08:51:33

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

int n, m, h[1000010], cc, cm;
vector<pair<int, int>> mon;
vector<int> c, mo;

signed main() {
    cin.tie(0)->sync_with_stdio(0);
    cin >> n >> m;
    for(int i=1; i<=n; i++) {
        cin >> h[i];
    }
    for(int i=1; i<=m; i++) {
        cin >> cm >> cc;
        mon.push_back({cm, cc});
    }
    sort(mon.begin(), mon.end());
    mo.push_back(-1);
    c.push_back(0);
    for(int i=0; i<m; i++) {
        mo.push_back(mon[i].first);
        c.push_back(mon[i].second);
        c[i+1] += c[i];
    }
    for(int i=1; i<=n; i++) {
        int idx = upper_bound(mo.begin(), mo.end(), h[i]) - mo.begin() - 1;
        cout << c[idx] << "\n";
    }

    return 0;
}