Pagini recente » Cod sursa (job #2851545) | Cod sursa (job #1456520) | Solutii preONI 2007, Runda 3 | Cod sursa (job #2037534) | Cod sursa (job #781151)
Cod sursa(job #781151)
#include <fstream>
#include <algorithm>
#include <queue>
#define x first
#define y second
using namespace std;
pair <int, int> vect[100001];
priority_queue<int, vector<int>, less<int> > heap;
int n, i, distMax, distTura, j;
long long sum;
bool functieComp(pair<int, int> A, pair<int, int> B)
{
if(A.x<B.x)
return true;
return false;
}
int main()
{
ifstream f("lupu.in");
ofstream g("lupu.out");
f>>n>>distMax>>distTura;
for(i=1; i<=n; ++i)
{
f>>vect[i].x>>vect[i].y;
}
sort(vect+1, vect+n+1, functieComp);
j=1;
for(i=0; i<=distMax; i+=distTura)
{
for(;vect[j].x<=i/*+distTura*/ && j<=n; j++)
{
heap.push(vect[j].y);
}
if(heap.size())
{
sum+=heap.top();
heap.pop();
}
}
g<<sum;
}