Pagini recente » Cod sursa (job #2095085) | Cod sursa (job #2536965) | Cod sursa (job #2894322) | Cod sursa (job #2888213) | Cod sursa (job #1654605)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
struct str
{
int g,p;
bool operator <(const str &aux) const
{
if(g==0 && aux.g==0) return p>aux.p;
else if(p*aux.g==aux.p*g) return p>aux.p;
else return p*aux.g>aux.p*g;
}
}v[5010];
int main()
{
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
int n,m,sol=0;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d%d",&v[i].g,&v[i].p);
sort(v+1,v+1+n);
for(int i=1;i<=n;i++)
if(m>=v[i].g) {m-=v[i].g;sol+=v[i].p;}
printf("%d",sol);
return 0;
}