Pagini recente » Cod sursa (job #1515126) | Cod sursa (job #2060353) | Cod sursa (job #1541817) | Cod sursa (job #1523686) | Cod sursa (job #3125863)
#include <fstream>
#include <queue>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ifstream in("procesor.in");
ofstream out("procesor.out");
priority_queue <int> h_p;
int n;
in >> n;
vector < pair<int, int>> v;
v.resize(n);
for (int i = 0; i < n; i++)
{
in >> v[i].first >> v[i].second;
}
sort(v.begin(), v.end());
int timp = 0;
long long p_tot = 0;
for (int i = 0; i < n; i++)
{
if (timp < v[i].first)///poate fi executat
{
h_p.push(-v[i].second);
timp++;
}
else
{
int p_c = v[i].second;
if (h_p.empty())
{
p_tot += p_c;
continue;
}
int p_a = -h_p.top();
if (p_c > p_a)
{
p_tot += p_a;
h_p.pop();
h_p.push(-p_c);
}
else
{
p_tot += p_c;
}
}
}
out << p_tot << "\n";
in.close();
out.close();
return 0;
}