Cod sursa(job #1426217)

Utilizator GhiciCineRazvan Dumitriu GhiciCine Data 29 aprilie 2015 10:06:54
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <cstdio>
#include <algorithm>

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