Pagini recente » Cod sursa (job #2057381) | Rating ta ogb (taogb) | Atasamentele paginii Clasament test_competition | Cod sursa (job #672032) | Cod sursa (job #1736461)
#include<cstdio>
#include<algorithm>
#include<queue>
#define MAXN 100010
using namespace std;
struct Sheep{
int wool,day;
};
struct Compare{
inline bool operator()(const Sheep &a,const Sheep &b)const{
return a.wool<b.wool;
}
};
priority_queue<Sheep,vector<Sheep>,Compare> Heap;
vector<Sheep> v[MAXN];
int main(){
freopen("lupu.in","r",stdin);
freopen("lupu.out","w",stdout);
int n,x,l,i,j,a,b,day;
long long answer=0;
Sheep temp;
scanf("%d%d%d",&n,&x,&l);
for(i=1;i<=n;i++){
scanf("%d%d",&a,&b);
if(a>x)
continue;
day=min((x-a)/l+1,n);
temp.wool=b;
temp.day=day;
v[day].push_back(temp);
}
for(i=n;i>=1;i--){
for(j=0;j<v[i].size();j++)
Heap.push(v[i][j]);
if(Heap.empty())
continue;
answer+=Heap.top().wool;
Heap.pop();
}
printf("%lld",answer);
return 0;
}