Pagini recente » Cod sursa (job #1308827) | Cod sursa (job #1165284) | Cod sursa (job #2532872) | Cod sursa (job #890230) | Cod sursa (job #1323292)
#include<fstream>
#include<algorithm>
#include<queue>
#define dim 100007
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
priority_queue<long long >q;
struct pufosenie {
int dist,pufos;
}
v[dim];
bool cmp( pufosenie a , pufosenie b ) {
return a.dist > b.dist;
}
inline int maxim ( int a, int b ) {
if( a > b )
return a;
return b;
}
long long Dezmat;
int N ,X ,L , Maxu;
int main (){
f >>N >> X >> L;
Maxu=-10000;
for(int i = 1 ;i <= N ;++i ){
f >> v[i].dist >> v[i].pufos ;
v[i].dist= ( X- v[i].dist )/L;
Maxu= maxim( Maxu, v[i].dist );
}
sort(v+1 , v+1+N , cmp);
int j = 1;
for(int i=Maxu ; i >=0 ; --i ){
for( ; j<=N && v[j].dist == i ; ){
q.push(v[j++].pufos);
}
if( !q.empty() ){
Dezmat+=q.top();
q.pop();
}
}
g << Dezmat << "\n";
return 0;
}