Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<queue>
- #include<algorithm>
- using namespace std;
- struct info{
- int a, b;
- bool operator< (const info &tmp) const {
- return b < tmp.b;
- }
- };
- bool cmp_a(info i1, info i2){
- return i1.a < i2.a;
- }
- const int N = 1e5+10;
- info v[N];
- int n, m;
- int main(){
- cin >> n >> m;
- for(int i=0; i < n; i++){
- cin >> v[i].a >> v[i].b;
- }
- sort(v, v+n, cmp_a);
- priority_queue<info> q;
- int index = 0;
- int ans = 0;
- for(int i=0; i <= m; i++){
- while(index < n and v[index].a <= i) q.push(v[index++]);
- if(q.size()) ans += q.top().b, q.pop();
- }
- cout << ans << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement