Pagini recente » Rating Nistor Dora Valentina (nistor_dora_valentina) | Cod sursa (job #3270246)
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
struct oaia
{
int dist, lana;
};
bool cmp(oaia x, oaia y)
{
return (x.dist > y.dist);
}
int main()
{
ifstream in("lupu.in");
ofstream out("lupu.out");
int n, dist_max, indepartare;
in >> n >> dist_max >> indepartare;
vector <oaia> v(n);
for (int i = 0; i < n; i++)
{
in >> v[i].dist >> v[i].lana;
}
sort(v.begin(), v.end(), cmp);
long long total_lana = 0;
priority_queue <int, vector <int>, greater <int>> selectate;
int timp_c = 0;
for (int i = 0; i < n; i++)
{
if (v[i].dist + timp_c * indepartare <= dist_max)
{
selectate.push(v[i].lana);
total_lana += v[i].lana;
timp_c++;
}
else
{
if (!selectate.empty() && v[i].lana > selectate.top())
{
///preferam oaia i
total_lana += v[i].lana - selectate.top();
selectate.pop();
selectate.push(v[i].lana);
}
}
}
out << total_lana << "\n";
in.close();
out.close();
return 0;
}