Submission
Status:
[PPPPPPPPPPPPPPPPPPPP]
Score: 100
User: Nightingale
Problemset: ฮีโร่และมอนสเตอร์
Language: cpp
Time: 0.302 second
Submitted On: 2025-03-31 23:46:45
#include <bits/stdc++.h>
#define int long long
using namespace std;
int32_t main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int a,b;
cin >> a >> b;
int idx = 0;
vector<pair<int,int>> hero(a);
vector<pair<int,int>> mons(b);
vector<int> coin(b);
vector<int> reward(a);
for(int i=0;i<a;i++){
int c;
cin >> c;
hero[i] = {c,i};
}
for(int i=0;i<b;i++){
int c,d;
cin >> c >> d;
mons[i] = {c,d};
}
sort(hero.begin(),hero.end(),greater<pair<int,int>>());
sort(mons.begin(),mons.end(),greater<pair<int,int>>());
coin[b-1] = mons[b-1].second;
for(int i=b-2;i>=0;i--){
coin[i] = coin[i+1]+mons[i].second;
}
for(int i=0;i<b;i++){
if(idx==a) break;
if(hero[idx].first>=mons[i].first){
reward[hero[idx].second] = coin[i];
i--;
idx++;
}
}
for(int i=0;i<a;i++){
cout << reward[i] << '\n';
}
}