Submission
Status:
[PPPPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Test
Problemset: ฮีโร่และมอนสเตอร์
Language: cpp
Time: 0.223 second
Submitted On: 2026-03-04 19:41:48
#include <bits/stdc++.h>
using namespace std;
int INF = 1e9;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n,m;
cin >> n >> m;
vector<int> hero(n);
for(int i=0;i<n;i++){
cin >> hero[i];
}
vector<pair<int,int>> mon(m);
for(int i=0;i<m;i++){
cin >> mon[i].first >> mon[i].second;
}
sort(mon.begin(),mon.end());
vector<long long> pref(m);
pref[0] = mon[0].second;
for(int i=1;i<m;i++){
pref[i] = pref[i-1] + mon[i].second;
}
for(int i=0;i<n;i++){
int h = hero[i];
int pos = upper_bound(mon.begin(), mon.end(), make_pair(h, INF)) - mon.begin();
if(pos==0) cout << 0 << "\n";
else cout << pref[pos-1] << "\n";
}
}
/*
for(int i=0;i<n;i++){
int ct=0,sm=0;
int j=0;
while(j < m && mon[j].first<=hero[i]){
ct+=mon[j].second;
j++;
}
cout << ct << "\n";
}*/
/*
4 5
1 4 2 6
1 2
1 3
5 4
2 5
3 6
*/