Cod sursa(job #3136258)

Utilizator LemnaruAlinGabrielLemnaru Alin-Gabriel LemnaruAlinGabriel Data 5 iunie 2023 19:03:55
Problema Problema rucsacului Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.65 kb
/*
	(1) Problema discreta a rucsacului
*/

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define NMAX 5005
#define GMAX 10005


int main() {
	FILE *fin, *fout;
	int i, j, n, p[NMAX], g[NMAX], gMax, dp[GMAX], ans;
	fin = fopen("rucsac.in", "rt");
	fout = fopen("rucsac.out", "wt");
	fscanf(fin, "%d %d", &n, &gMax);
	for (i = 1; i <= n; i++) 
		fscanf(fin, "%d %d", &g[i], &p[i]);
	for (i = 1; i <= n; i++) 
		for (j = gMax; j >= g[i]; j--) 
			dp[j] = MAX(dp[j], dp[j - g[i]] + p[i]);
	for (int i = 0; i <= gMax; i++) 
		ans = MAX(ans, dp[i]);
	fprintf(fout, "%d\n", ans);
	fclose(fin);
	fclose(fout);
	return 0;
}