Pagini recente » Cod sursa (job #624755) | Cod sursa (job #2902001) | Cod sursa (job #1346236) | Cod sursa (job #57244) | Cod sursa (job #1050794)
#include <cstdio>
#include <algorithm>
#include <vector>
#include <set>
#define pb push_back
#define mp make_pair
#define f first
#define s second
multiset <int> h;
vector < pair <int,int> > a;
pair <int,int> X;
int b[100001], c[100001];
using namespace std;
int main()
{
int n, x, l, m=0, i, d, e, S=0;
freopen("lupu.in","r",stdin);
freopen("lupu.out","r",stdout);
scanf("%d%d%d",&n,&x,&l);
for (i=1; i<=n; i++)
{
scanf("%d%d",&d,&e);
if (d<=x) {b[++m]=d; c[m]=e;}
}
for (i=1; i<=m; i++)
{
int z=(x-i+1)/l;
a.pb(mp(z,c[i]));
}
sort(a.begin(), a.end());
reverse(a.begin(), a.end());
for (i=m; i>=1; i++)
{
h.insert(mp(a[i].f,a[i].s));
X=h.begin(); S+=X;
h.erase(i);
}
fclose(stdin);
fclose(stdout);
return 0;
}