Cod sursa(job #1814778)

Utilizator petrica_norbyPetrica Norbert Mark petrica_norby Data 24 noiembrie 2016 15:46:44
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
using namespace std;

ifstream fi("rucsac.in");
ofstream fo("rucsac.out");

struct chef{
   int g;
   int v;
}Bontea[5005];

int n,i,j,k,g,a[10005],b[10005];

int main()
{
  fi>>n>>g;
  for(i=1;i<=n;i++){
     fi>>Bontea[i].g>>Bontea[i].v;
  }
  for(i=1;i<=n;i++){
    if(i%2==1){
    for(j=1;j<=g;j++){
      if(j<Bontea[i].g)
        b[j]=max(b[j-1],a[j]);
      else{
        b[j]=max(max(b[j-1],a[j]),
                    Bontea[i].v+a[j-Bontea[i].g]);
      }

    }
    }else{
      for(j=1;j<=g;j++){
      if(j<Bontea[i].g)
        a[j]=max(a[j-1],b[j]);
      else{
        a[j]=max(max(a[j-1],b[j]),
                    Bontea[i].v+b[j-Bontea[i].g]);
      }

    }

    }
  }
/*
  for(i=1;i<=n;i++){
    for(j=1;j<=g;j++)
     fo<<a[i][j]<<' ';
    fo<<'\n';
}
*/
  if(n%2==1)fo<<b[g];
  else fo<<a[g];


    return 0;
}