Pagini recente » Borderou de evaluare (job #176656) | Borderou de evaluare (job #1531909) | Borderou de evaluare (job #1731285) | Borderou de evaluare (job #1134319) | Cod sursa (job #3165179)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define MaxN 100000
struct oaie
{
int dist, lana;
};
bool cmp(const oaie& a, const oaie& b)
{
return a.lana<b.lana;
}
oaie v[MaxN];
int main()
{
ifstream in("lupu.in");
ofstream out("lupu.out");
int n, x, l, rounds=0, i, maxrounds, res=0;
long long mintime;
in>>n>>x>>l;
mintime=(long long)1 << 31;
for(i=0; i<n; i++)
{
in>>v[i].dist>>v[i].lana;
if(v[i].dist<mintime) mintime=v[i].dist;
}
maxrounds=(x-mintime)/l;
while(rounds<=maxrounds & n>0)
{
make_heap(v, v+n, cmp);
while(v[0].dist+rounds*l>x)
{
pop_heap(v, v+n, cmp);
n--;
}
res+=v[0].lana; //cout<<res<<" ";
pop_heap(v, v+n, cmp);
n--;
rounds++;
}
out<<res;
return 0;
}