Cod sursa(job #1862867)

Utilizator alxi.2001Alex Ionescu alxi.2001 Data 30 ianuarie 2017 13:00:28
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#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;
}