Submission

Status:

[PPPPTSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: qweqwe

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

Language: cpp

Time: 1.073 second

Submitted On: 2025-10-16 21:40:01

#include <bits/stdc++.h>
#define speed cin.tie(0)->sync_with_stdio(0)
#define ll long long
#define pii pair<ll,ll>
using namespace std;

map<ll,ll> temp;

int main(){
	//speed;
	ll n,m;cin >> n >> m;
	vector<ll> num(n);
	vector<pii> dp;
	ll mx=0,mn=1e15;
	for (int i=0;i<n;i++){
		cin >> num[i];
	}
	for (int i=0;i<m;i++){
		ll a,b;cin >> a >> b;
		mx=max(mx,a);
		mn=min(mn,a);
		temp[a]+=b;
	}
	ll sum=0;
	for (pii i:temp){
		sum+=i.second;
		dp.push_back(make_pair(i.first,sum));
	}
	for (int i=0;i<n;i++){
		ll val=num[i];
		ll l=0,r=dp.size()-1;
		if (val<mn){
			cout << 0 << "\n";
			continue;
		}else if (val>mx){
			cout << dp[dp.size()-1].second << "\n";
			continue;
		}
		while (l<r){
			//cout << l << " " << r << "\n";
			ll mid=(l+r+1)/2;
			if (dp[mid].first<=val){
				l=mid;
			}else if (dp[mid].first>val){
				r=mid-1;
			}
		}
		cout << dp[l].second << "\n";
	}
	/*
	for (pii i:dp){
		cout << i.first << " " << i.second << "\n";
	}
	*/
	return 0;
}