Pagini recente » Cod sursa (job #1054537) | Cod sursa (job #1831598) | Cod sursa (job #2510278) | Cod sursa (job #2751984) | Cod sursa (job #1682577)
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int g;
struct obiect
{
int greutate,profit;
};
vector<obiect> v;
bool cmp(obiect x, obiect y)
{
return(x.profit>y.profit);
}
void adunare()
{
int actual=0;
int de_afisat=0;
for(int i=0; i<v.size(); i++)
{
actual+=v[i].greutate;
if(actual>g)
{
break;
}
de_afisat+=v[i].profit;
}
printf("%d",de_afisat);
}
void citire()
{
int nr;
scanf("%d %d\n",&nr,&g);
for(int i=0; i<nr; i++)
{
int x,y;
scanf("%d %d\n",&x,&y);
v.push_back(obiect());
v[i].greutate=x;
v[i].profit=y;
}
sort(v.begin(),v.end(),cmp);
adunare();
}
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
citire();
return 0;
}