Cod sursa(job #712288)
Utilizator | Data | 13 martie 2012 11:44:38 | |
---|---|---|---|
Problema | Lupul Urias si Rau | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <queue>
#include <fstream>
using namespace std;
priority_queue<int> q;
int x,n,m,d,l[100001],i,k,rez;
pair<int,int> v[100001];
int main ()
{ifstream f("lupu.in");
ofstream g("lupu.out");
f>>n>>x>>m;
for(i=1;i<=n;i++)
{f>>d>>l[i];
d=(x-d)/m+1;
v[i].first=d;
v[i].second=i;
}
sort(v+1,v+n+1);
i=n;
k=v[i].first;
while(k>0)
{for(;i&&v[i].first==k;i--)
q.push(l[v[i].second]);
if(!q.empty())
{
rez+=q.top();
q.pop();}
k--;}
g<<rez;
f.close(); g.close();
return 0;
}