Pagini recente » Cod sursa (job #2747334) | Cod sursa (job #1467063) | Cod sursa (job #2264991) | Cod sursa (job #2070226) | Cod sursa (job #1182337)
#include <cstdio>
#include <queue>
#include <vector>
using namespace std;
FILE*f=fopen("lupu.in","r");
FILE*h=fopen("lupu.out","w");
struct tip{
int d;
const bool operator < ( const tip &other )const{
return d<other.d;
}
};
vector<int> v[1000001];
priority_queue<tip> q;
long long s=0;
int main(){
int n,e,l,t=0;
fscanf(f,"%d%d%d",&n,&l,&e);
for ( int i=1;i<=n;++i ){
int x,y;
fscanf(f,"%d%d",&x,&y);
if ( l>x ){
int timp=(l-x)/e;
v[timp].push_back(y);
if ( timp>t )
t=timp;
}
}
for ( int i=t;i>=0;--i ){
for ( int j=0;j<v[i].size();++j ){
q.push({v[i][j]});
}
if ( q.size()!=0 ){
s+=q.top().d;
q.pop();
}
}
fprintf(h,"%lld",s);
return 0;
}