Pagini recente » Cod sursa (job #501260) | Cod sursa (job #2599913) | Cod sursa (job #1406603) | Cod sursa (job #370695) | Cod sursa (job #2412360)
#include <fstream>
#include <algorithm>
#include <set>
#define f first
#define s second
using namespace std;
multiset <int> v;
multiset <int>::iterator it;
pair <int,int> a[100005];
ifstream fin("lupu.in");
ofstream fout("lupu.out");
long long sum;
int n,x,l,maxim,i,d;
int main()
{
fin >> n >> x >> l;
for (i=1;i<=n;i++)
{
fin >> a[i].f >> a[i].s;
a[i].f=(x-a[i].f)/l;
if (a[i].f>maxim) maxim=a[i].f;
}
for (i=1;i<=n;i++) fout << a[i].f << " " << a[i].s << "\n";
sort (a+1,a+n+1);
fout << "\n";
for (i=1;i<=n;i++) fout << a[i].f << " " << a[i].s << "\n";
i=n;
for (d=maxim;d>=0;d--)
{
while (a[i].f==d && i>=1)
{
v.insert(a[i].s);
i--;
}
if (!v.empty())
{
it=v.end();
it--;
sum+=*it;
v.erase(it);
}
}
fout << sum;
return 0;
}