Cod sursa(job #2000305)

Utilizator cyg_LucaFlorinTanasescu Luca Florin cyg_LucaFlorin Data 13 iulie 2017 13:01:14
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <cstdio>

using namespace std;

int d[10005];

int main()
{
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    int n,g,G,i,last,pmax,p,j;
    scanf("%d%d",&n,&G);
    d[0]=0;
    for(i=1;i<=G;i++)
        d[i]=-1;
    last=0;
    for(i=1;i<=n;i++)
    {
      scanf("%d%d",&g,&p);
      for(j=last;j>=0;j--)
      {
        if(j+g>G)
          continue;
        if(d[j]!=-1)
        {
          if(d[j+g]<d[j]+p)
            d[j+g]=d[j]+p;
          if(j+g>last)
            last=j+g;
        }
      }
    }
    pmax=0;
    for(j=G;j>=1;j--)
      if(d[j]>pmax)
        pmax=d[j];
    printf("%d",pmax);
    return 0;
}