Cod sursa(job #1425533)

Utilizator czlateaZlatea Cezar czlatea Data 27 aprilie 2015 16:54:21
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
int d[10005];
int main()
{
  freopen("rucsac.in","r",stdin);
  freopen("rucsac.out","w",stdout);
  int n,g,w,p,maxdr=0,maxp,poz=0,s,i,j;
  for(i=1; i<=10000; i++)
    d[i]=-1;
  scanf("%d%d",&n,&g);
  maxdr=0;
  for(i=1; i<=n; i++)
  {
    scanf("%d%d",&w,&p);
    for(j=maxdr; j>=0; --j)
      if(j+w<=g)
        if(d[j]!=-1)
        {
          d[j+w]=max(d[j+w],d[j]+p);
          if(j+w>maxdr)
            maxdr=j+w;
        }
  }
  maxp=0;
  for(j=1; j<=g; ++j)
    if(d[j]>maxp)
      maxp=d[j];
  printf("%d\n",maxp);
  return 0;
}