Cod sursa(job #2615853)

Utilizator euyoTukanul euyo Data 15 mai 2020 18:17:03
Problema Problema rucsacului Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>

int g[5000], p[5000];
int l[10001], lc[10001];

int main() {
  FILE *fin = fopen( "rucsac.in", "r" );
  FILE *fout = fopen( "rucsac.out", "w" );
  int n, G, i, j;

  fscanf( fin, "%d%d", &n, &G );
  for ( i = 0; i < n; ++i ) {
    fscanf( fin, "%d%d", &g[i], &p[i] );
  }
  for ( i = 0; i < n; ++i ) {
    for ( j = 1; j <= G; ++j ) {
      if ( j - g[i] >= 0 ) {
        lc[j] = l[j] > l[j - g[i]] + p[i] ? l[j] : l[j - g[i]] + p[i];
      } else {
        lc[j] = l[j];
      }
    }
    for ( j = 1; j <= G; ++j ) {
      l[j] = lc[j];
    }
  }
  fprintf( fout, "%d", l[G] );
  fclose( fin );
  fclose( fout );
  return 0;
}