Submission

Status:

[PPPPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: august

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

Language: cpp

Time: 0.237 second

Submitted On: 2026-03-18 19:17:54

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

int32_t main() {
    cin.tie(0)->sync_with_stdio(0);
    int n, m;
    cin>> n>> m;

    vector<int> h(n);for (int i=0; i<n; i++) cin>> h[i];

    vector<pair<int,int>> bs;
    for (int i=0; i<m; i++) {
        int p,c;
        cin>> p>> c;
        bs.push_back({p,c});
    }
    sort(bs.begin(), bs.end());
    
    vector<int> pf(m,0);
    for (int i=0; i<m; i++) {
        if (i!=0) pf[i] += pf[i-1];
        pf[i] += bs[i].second;
    }

    for (int i=0; i<n; i++) {

        int l=0, r=m-1;
        while (l<=r) {
            int mid=(r-l)/2+l;

            if (bs[mid].first <= h[i]) l=mid+1;
            else r=mid-1;
        }
        l--;
        if (l<0) cout<< 0<< '\n';
        else cout<< pf[l]<< '\n';
    }
}