Pagini recente » Cod sursa (job #2597349) | Cod sursa (job #1833660) | Cod sursa (job #974991) | Cod sursa (job #720112) | Cod sursa (job #2420720)
#include <bits/stdc++.h>
using namespace std;
struct
{
long long dist;
long long val;
}oite[100001];
int main()
{
ifstream f("lupu.in");
ofstream g("lupu.out");
int oi,n,m,i,ok,poz,z,x,j,maxim,maxi;
unsigned long long sum;
sum=0;
f>>oi>>n>>m;
for(i=1;i<=oi;i++)
f>>oite[i].dist>>oite[i].val;
x=0;
for(i=1;i<oi;i++)
for(j=i+1;j<=oi;j++)
if(oite[i].dist<oite[j].dist)
{swap(oite[i].dist,oite[j].dist);
swap(oite[i].val,oite[j].val);}
i=1;
for(i=1;i<=oi;i++)
if(oite[i].dist<=n) break;
poz=i;
ok=1;
while(ok)
{
maxim=0;
maxi=0;
while(n-m<oite[i].dist&&i<=oi)
{
if(oite[i].val>=maxim) {maxim=oite[i].val; maxi=i;}
i++;
}
sum+=oite[maxi].val;
if(n!=0) n=max(0,n-m);
else ok=0;
}
g<<sum<<'\n';}