Cod sursa(job #2502930)

Utilizator popashtefan10Popa Stefan popashtefan10 Data 1 decembrie 2019 21:31:48
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

struct obiect {
  int w, p;
} v[5005];
int n, g;
int d[5005];

int main() {
  freopen("rucsac.in", "r", stdin);
  freopen("rucsac.out", "w", stdout);

  scanf("%d %d", &n, &g);
  for(int i = 1; i <= n; i++)
    scanf("%d %d", &v[i].w, &v[i].p);
  for(int i = 0; i <= g; i++)
    d[i] = -1;

  d[0] = 0;
  for(int i = 1; i <= n; i++)
    for(int j = g - v[i].w; j >= 0; j--)
      if(d[j] != -1)
        d[j + v[i].w] = max(d[j + v[i].w], d[j] + v[i].p);
  printf("%d", d[g]);

  return 0;
}