Cod sursa(job #2029335)

Utilizator stoianmihailStoian Mihail stoianmihail Data 29 septembrie 2017 20:52:30
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <cstdio>

#define MAX_G 10000

int d[MAX_G + 1];

int main(void) {
  FILE *f = fopen("rucsac.in", "r");
  freopen("rucsac.out", "w", stdout);

  int N, G;
  int i, j, w, p;
  fscanf(f, "%d %d", &N, &G);
  for (i = 1; i <= N; i++) {
    fscanf(f, "%d %d", &w, &p);
    for (j = G - w; j >= 0; j--) {
      if (d[j] + p > d[j + w]) {
        d[j + w] = d[j] + p;
      }
    }
  }
  int max = 0;
  for (i = 1; i <= G; i++) {
    if (d[i] > max) {
      max = d[i];
    }
  }
  fprintf(stdout, "%d\n", max);
  fclose(f);
  fclose(stdout);
  return 0;
}