Cod sursa(job #2502932)

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

using namespace std;

struct obiect {
  int w, p;
} v[5005];
int n, g, sol;
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);
        sol = max(sol, d[j + v[i].w]);
      }
  printf("%d", sol);

  return 0;
}