Pagini recente » Cod sursa (job #2204612) | Cod sursa (job #2675368) | Cod sursa (job #992018) | Cod sursa (job #838738) | Cod sursa (job #2291070)
#include <iostream>
#include <fstream>
#include <utility>
#include <queue>
#include <vector>
#define Nmax 100005
#include <algorithm>
using namespace std;
ifstream fin ("lupu.in");
ofstream fout("lupu.out");
int n,x,l;
class pereche
{
public :
int lana,prioritate;
pereche (int pr=0,int ln=0)
{
lana=ln;
prioritate=pr;
}
pereche (const pereche & aux)
{
lana=aux.lana;
prioritate =aux.prioritate;
}
bool operator < (const pereche & aux) const
{
return (lana <aux.lana);
}
};
priority_queue<pereche> oi;
int main()
{int i;
int response =0;
fin>>n>>x>>l;
vector <pair<int,int>> date;
for (i=1;i<=n;i++)
{ pair<int,int>aux;
fin>>aux.first>>aux.second;
if (aux.first<=x)
{aux.first=(x-aux.first)/2; //cate ture poate sta oaia in raza de actiune a lupului.
//in date[i].second se retine lana
date.push_back(aux);
}
}
sort (date.begin(),date.end());//le sortez dupa prioritate
// for (pair<int,int> aux:date)
// fout<<aux.first<<" "<<aux.second<<"\n";
int dim=date.size();
int cnt=dim-1;
for (i=date[dim-1].first;i>=0;i--)
{ int max_ln=0;
while (date[cnt].first==i){
pereche aux;
aux.lana=date[cnt].second;
aux.prioritate=date[cnt].first;
oi.push(aux);
cnt--;
}
response+=oi.top().lana;
oi.pop();
}
fout<<response;
return 0;
}