Cod sursa(job #1533648)

Utilizator tc_iuresiures tudor-cristian tc_iures Data 22 noiembrie 2015 20:33:15
Problema Problema rucsacului Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>

using namespace std;

const int Nmax = 5005;
const int Gmax = 10005;

int N, G;
int wg[Nmax], pr[Nmax];
int M[Nmax][Gmax];

void read()
{
   ifstream f("rucsac.in");
   f >> N >> G;
   for(int i = 1; i <= N; i ++)
   {
      f >> wg[i] >> pr[i];
   }
   f.close();
}

void Backpack()
{
   for(int i = 1; i <= N; i ++)
   {
      for(int j = 1; j <= G; j ++)
      {
         M[i][j] = M[i-1][j];
         if(wg[i] <= j)
         {
            M[i][j] = max(M[i-1][j], M[i-1][j-wg[i]]+pr[i]);
         }
      }
   }
}

void print()
{
   ofstream g("rucsac.out");
   g << M[N][G];
   g.close();
}

int main()
{
    read();
    Backpack();
    print();
    return 0;
}