Cod sursa(job #1488211)
Utilizator | ene dumitru enedumitru | Data | 18 septembrie 2015 10:02:52 |
---|---|---|---|
Problema | Lupul Urias si Rau | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include<fstream>
#include<queue>
#include<algorithm>
using namespace std;
ifstream f("lupu.in"); ofstream g("lupu.out");
priority_queue<int> h;
pair <int,int> a[100010];
int n,x,k;
int main()
{ f>>n>>x>>k;
for(int i=1;i<=n;i++) f>>a[i].first>>a[i].second;
sort(a+1,a+n+1);
long long sol=0;
for(int d=0,i=1;d<=x;d+=k)
{ while(i<=n && a[i].first<=d) h.push(a[i++].second);
if(!h.empty()) {sol+=h.top(); h.pop();}
}
g<<sol<<'\n'; g.close(); return 0;
}