Cod sursa(job #1447671)

Utilizator AraldaAralda Pacurar Aralda Data 4 iunie 2015 22:54:10
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#include <iostream>
#include <iomanip>

using namespace std;

struct obiect {
  int g, p; // greutatea, profitul
};

obiect a[5001];
int n, G, l, g,i, p, c, pn, lp, lc, d[2][10001];
ifstream fi ("rucsac.in");
ofstream fo ("rucsac.out");

int main()
 {
  fi>>n>>G;
  for(i=1;i<=n;i++)
   fi>>a[i].g>>a[i].p;

  lp=0;
  lc=1;
  for(l=1;l<=n;l++){
   for(c=1;c<=G;c++)
    {
     if(a[l].g<=c)
      {
       pn=a[l].p+d[lp][c-a[l].g];
       if(pn>=d[lp][c])
        d[lc][c]=pn;
       else
        d[lc][c]=d[lp][c];
      }
     else
      d[lc][c]=d[lp][c];
    }
    lp=1-lp;
    lc=1-lc;
    }

  fo<<d[lp][G];
 }