Pagini recente » Cod sursa (job #3226402) | Cod sursa (job #1151494) | Borderou de evaluare (job #1566105) | Borderou de evaluare (job #1273103) | Cod sursa (job #911987)
Cod sursa(job #911987)
#include<fstream>
#include<set>
#include<algorithm>
using namespace std;
unsigned long long i,j,d,l,n,rez=0,timp;
multiset<int, greater <int> > heap;
struct oite
{
unsigned long long dist,lana;
};
oite a[100001];
bool cmp(oite a,oite b)
{
return a.dist<b.dist;
}
int main()
{
ifstream f("lupu.in");
ofstream g("lupu.out");
f>>n>>d>>l;
for(i=1;i<=n;++i)
{
f>>a[i].dist>>a[i].lana;
a[i].dist=(d-a[i].dist)/l+1;
timp=max(timp,a[i].dist);
}
sort(a+1,a+n+1,cmp);
while(timp)
{
while(n>0&&a[n].dist==timp)
{
heap.insert(a[n].lana);
--n;
}
if(heap.size()>0)
{
rez+=*heap.begin();
heap.erase(heap.begin());
}
--timp;
}
g<<rez<<"\n";
return 0;
}