Submission

Status:

[P-SSSSSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: qweqwe

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-16 21:27:18

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