Cod sursa(job #2699727)

Utilizator Antonia_onisoruantonia onisoru Antonia_onisoru Data 25 ianuarie 2021 18:37:07
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

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

const int MAXN = 5000;
const int MAXG = 10000;

int d[2][MAXG + 1];
int val[MAXN + 1], greutate[MAXN + 1];

int main(){

  int n, g, i, j;
  in>>n>>g;

  for( i = 1; i <= n; i++ )
    in>>greutate[i]>>val[i];

  d[0][0] = 0;
  for( i = 1; i <= n; i++ ){
    for( j = 0; j <=g; j++ ){
      d[i & 1][j] = d[(i - 1) & 1][j];
      if( greutate[i] <= j )
        d[i & 1][j] = max( d[(i - 1) & 1][j], d[( i - 1 ) & 1][j - greutate[i]] + val[i]);
    }
  }

  out<<d[n & 1][g];
  return 0;
}