Cod sursa(job #3283775)

Utilizator ana.veronica13Ana Veronica Draghici ana.veronica13 Data 10 martie 2025 14:41:03
Problema Lupul Urias si Rau Scor 4
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>

using namespace std;

#define MAX_N 100001

struct oaie{
  int d, lana, t;
};

oaie o[MAX_N];
int t[MAX_N];

int cmp( oaie a, oaie b ){
  if( a.t == b.t )
    return a.lana > b.lana;
  return a.t < b.t;
}

priority_queue<int> pq;

int main(){
  ifstream cin( "lupu.in" );
  ofstream cout( "lupu.out" );
  int n, i, x, l, s, timp;
  cin >> n >> x >> l;
  for( i = 1; i <= n; i++ ){
    cin >> o[i].d >> o[i].lana;
    o[i].t = ( x - o[i].d ) / l;
  }
  sort( o, o + n, cmp );
  //for( i = 0; i < n; i++ )
    //cout << o[i].d << " " << o[i].lana << " " << o[i].t << "\n";
 /* i = 0;
  for( timp = 0; timp <= x / l; timp++ ){
    int maxx = 0;
    while( i < n && o[i].t <= timp ){
      if( o[i].lana > maxx )
        maxx = o[i].lana;
      i++;
    }
    s += maxx;
  }*/
  s = 0;
  for( i = n; i >= 1; i-- ){
    if( o[i].t <= x / l )
      pq.push( o[i].lana );
    if( o[i].t != o[i - 1].t ){
      s += pq.top();
      //cout << pq.top() << " ";
      pq.pop();
    }
  }
  cout << s;
    return 0;
}