Pagini recente » Cod sursa (job #2578892) | Cod sursa (job #1534696) | Cod sursa (job #1294610) | Cod sursa (job #147649) | Cod sursa (job #1862867)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("rucsac.in"); ofstream out("rucsac.out");
struct object
{
int w, p;
};
object a[5001];
int n, g, pmax, crt_w;
bool cmp_w(object a, object b)
{
return (a.w<b.w);
}
bool cmp_p(object a, object b)
{
return (a.p>b.p);
}
int main()
{
in>>n>>g;
for (int i=1; i<=n; ++i)
in>>a[i].w>>a[i].p;
sort(a+1, a+1+n, cmp_w);
sort(a+1, a+1+n, cmp_p);
for (int i=1; i<=n && crt_w<g; ++i)
{
if (crt_w+a[i].w<=g)
pmax+=a[i].p; crt_w+=a[i].w;
}
out<<pmax;
}