Cod sursa(job #2673400)

Utilizator cristiemanuelstroe cristian emanuel cristiemanuel Data 16 noiembrie 2020 18:22:29
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include  <iostream>
#include  <fstream>
#include  <vector>

using namespace std;

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

const int Nmax = 1e4 + 5;
int G[Nmax], V[Nmax],//A greutatea
    n, Gmax,
    A[Nmax], B[Nmax];
// A coloana anterioara, B coloana curenta

int main()
{
  in>>n>>Gmax;
  for(int i = 1; i <= n; i++)
    in>>G[i]>>V[i];
  for(int j = 1; j <= n; j++)
  {
    for(int i = 1; i <= Gmax; i++)
      A[i] = B[i];
    for(int i = 1; i <= Gmax; i++)
      if(G[j] > i)
        B[i] = A[i];
      else
        B[i] = max(A[i], A[i-G[j]] + V[j]);
  }
  out<<B[Gmax];
}