Pagini recente » Cod sursa (job #206800) | Cod sursa (job #1284844) | Cod sursa (job #1771685) | Cod sursa (job #1764099) | Cod sursa (job #1794890)
#include<fstream>
#include<queue>
using namespace std;
struct comparator
{
bool operator()(const pair<long long, long long> &p1, const pair<long long, long long> &p2)
{
if(p1.first > p2.first)
return 1;
else if (p1.first == p2.first)
{
return p1.second < p2.second;
}
else
return 0;
}
};
priority_queue<pair<long long, long long>, vector<pair<long long, long long>>, comparator> PQ;
ifstream in("lupu.in");
ofstream out("lupu.out");
int main()
{
long long N, X, L;
in >> N >> X >> L;
for (long long i = 1;i <= N;++i)
{
long long a, b;
in >> a >> b;
if(a<=X)
PQ.push(make_pair((X - a) / L,b));
}
long long s = 0;
long long j = 0;
while (PQ.size())
{
pair<long long, long long> e = PQ.top();
if (e.first >= j)
s += e.second,++j;
PQ.pop();
}
out << s;
return 0;
}